Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
e18914c
add basic unbounded censored client outbound
noahlevenson Dec 17, 2025
192a3d6
plumb through STUNBatch function from the outbound options
noahlevenson Dec 31, 2025
95bbf64
implement the outbound close function
noahlevenson Jan 4, 2026
e3b7f88
implement wrapper for webrtc net interface
garmr-ulfr Jan 28, 2026
7260330
feat(unbounded): add custom HTTP client with direct outbound for RTC …
garmr-ulfr Jan 28, 2026
96206c6
update unbounded
garmr-ulfr Jan 28, 2026
4725950
log dials, start quiclayer listener in start method
garmr-ulfr Feb 7, 2026
bd6441c
replace direct outbound with sing-box dialer
garmr-ulfr Feb 10, 2026
b58a682
bump unbounded to latest mainline
noahlevenson Feb 18, 2026
aff24f9
move hidden goroutine creation to the start function
noahlevenson Feb 18, 2026
b621dd2
unbounded: refactor and plumb through options for reverse TLS
noahlevenson Feb 21, 2026
2039f3b
unbounded: plumb through CA cert for reverse TLS
noahlevenson Feb 21, 2026
f0b128f
Merge branch 'main' into nelson/unbounded-integration
myleshorton Feb 27, 2026
be1722f
Fixing go mod
myleshorton Feb 27, 2026
30145c2
Fix duplicate imports and whitespace in register.go and proxy.go
myleshorton Feb 27, 2026
6c9ab43
Add HTTPClient and STUNServers to unbounded options
myleshorton Feb 27, 2026
f5ccc46
Add unbounded and water to supported protocols
myleshorton Feb 27, 2026
91d8388
Add UDP-over-TCP (UoT) support to unbounded outbound
myleshorton Feb 27, 2026
abbe92c
Use ECDSA P-256 and return errors instead of panicking in TLS config
myleshorton Feb 27, 2026
abb3a9b
Add json:"-" tags to non-serializable option fields
myleshorton Feb 27, 2026
ab0b1e1
revert injection of STUNBatch function and http.Client, and implement…
noahlevenson Mar 2, 2026
acdc81d
delete claude generated test
noahlevenson Mar 2, 2026
824dd67
add SAN verification and plumb through egress server name for reverse…
noahlevenson Mar 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions constant/proxy.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package constant

const (
TypeAmnezia = "amnezia"
TypeALGeneva = "algeneva"
TypeOutline = "outline"
TypeSamizdat = "samizdat"
TypeWATER = "water"
TypeAmnezia = "amnezia"
TypeALGeneva = "algeneva"
TypeOutline = "outline"
TypeSamizdat = "samizdat"
TypeWATER = "water"
TypeUnbounded = "unbounded"
)

const (
Expand Down
82 changes: 51 additions & 31 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ replace github.com/tetratelabs/wazero => github.com/refraction-networking/wazero

require (
github.com/getlantern/algeneva v0.0.0-20250307163401-1824e7b54f52
github.com/getlantern/broflake v0.0.0-20260215213912-5f68e35de272
github.com/getlantern/geo v0.0.0-20241129152027-2fc88c10f91e
github.com/getlantern/lantern-water v0.0.0-20260130212632-d5ea08838250
github.com/getlantern/samizdat v0.0.2
github.com/gobwas/ws v1.4.0
github.com/pion/transport/v3 v3.0.7
github.com/refraction-networking/water v0.7.1-alpha
github.com/sagernet/sing v0.7.18
github.com/sagernet/sing-box v1.12.22
Expand All @@ -34,6 +36,43 @@ require (
gopkg.in/yaml.v3 v3.0.1
)

require (
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect
github.com/enobufs/go-nats v0.0.1 // indirect
github.com/getlantern/context v0.0.0-20220418194847-3d5e7a086201 // indirect
github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65 // indirect
github.com/getlantern/hex v0.0.0-20220104173244-ad7e4b9194dc // indirect
github.com/getlantern/keepcurrent v0.0.0-20221014183517-fcee77376b89 // indirect
github.com/go-stack/stack v1.8.1 // indirect
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/pprof v0.0.0-20230821062121-407c9e7a662f // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect
github.com/klauspost/pgzip v1.2.5 // indirect
github.com/mholt/archiver/v3 v3.5.1 // indirect
github.com/nwaples/rardecode v1.1.2 // indirect
github.com/onsi/ginkgo/v2 v2.12.0 // indirect
github.com/oschwald/geoip2-golang v1.9.0 // indirect
github.com/oschwald/maxminddb-golang v1.13.1 // indirect
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect
github.com/pion/dtls/v3 v3.0.6 // indirect
github.com/pion/ice/v4 v4.0.10 // indirect
github.com/pion/mdns/v2 v2.0.7 // indirect
github.com/pion/srtp/v3 v3.0.6 // indirect
github.com/pion/stun/v3 v3.0.0 // indirect
github.com/pion/turn v1.3.7 // indirect
github.com/pion/turn/v4 v4.0.2 // indirect
github.com/pion/webrtc/v4 v4.1.2 // indirect
github.com/quic-go/quic-go v0.51.0 // indirect
github.com/ulikunitz/xz v0.5.10 // indirect
github.com/wlynxg/anet v0.0.5 // indirect
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect
)

require (
filippo.io/edwards25519 v1.1.0 // indirect
github.com/RoaringBitmap/roaring v1.2.3 // indirect
Expand Down Expand Up @@ -67,28 +106,22 @@ require (
github.com/bradfitz/iter v0.0.0-20191230175014-e8f45d346db8 // indirect
github.com/caddyserver/certmagic v0.23.0 // indirect
github.com/caddyserver/zerossl v0.1.3 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/coder/websocket v1.8.13 // indirect
github.com/coreos/go-iptables v0.7.1-0.20240112124308-65c67c9f46e6 // indirect
github.com/cretz/bine v0.2.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/dblohm7/wingoes v0.0.0-20240119213807-a09d6be7affa // indirect
github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e // indirect
github.com/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 // indirect
github.com/dustin/go-humanize v1.0.0 // indirect
github.com/edsrzf/mmap-go v1.1.0 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/gaissmai/bart v0.11.1 // indirect
github.com/gaukas/wazerofs v0.1.0 // indirect
github.com/getlantern/context v0.0.0-20190109183933-c447772a6520 // indirect
github.com/getlantern/errors v1.0.1 // indirect
github.com/getlantern/golog v0.0.0-20230503153817-8e72de7e0a65 // indirect
github.com/getlantern/hex v0.0.0-20190417191902-c6586a6fe0b7 // indirect
github.com/getlantern/errors v1.0.4 // indirect
github.com/getlantern/hidden v0.0.0-20190325191715-f02dbb02be55 // indirect
github.com/getlantern/keepcurrent v0.0.0-20221014183517-fcee77376b89 // indirect
github.com/getlantern/ops v0.0.0-20190325191751-d70cb0d6f85f // indirect
github.com/getlantern/ops v0.0.0-20230424193308-26325dfed3cf // indirect
github.com/go-chi/chi/v5 v5.2.2 // indirect
github.com/go-chi/render v1.0.3 // indirect
github.com/go-json-experiment/json v0.0.0-20250103232110-6a9a0fde9288 // indirect
Expand All @@ -97,22 +130,19 @@ require (
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-stack/stack v1.8.0 // indirect
github.com/gobwas/httphead v0.1.0 // indirect
github.com/gobwas/pool v0.2.1 // indirect
github.com/goccy/go-yaml v1.17.1 // indirect
github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466 // indirect
github.com/gofrs/uuid/v5 v5.3.2 // indirect
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/btree v1.1.3 // indirect
github.com/google/go-cmp v0.7.0 // indirect
github.com/google/nftables v0.2.1-0.20240414091927-5e242ec57806 // indirect
github.com/google/uuid v1.6.0 // indirect
github.com/gorilla/csrf v1.7.3-0.20250123201450-9dd6af1f6d30 // indirect
github.com/gorilla/securecookie v1.1.2 // indirect
github.com/gorilla/websocket v1.5.3 // indirect
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect
github.com/hashicorp/yamux v0.1.2 // indirect
github.com/hdevalence/ed25519consensus v0.2.0 // indirect
github.com/huandu/xstrings v1.3.2 // indirect
Expand All @@ -122,7 +152,6 @@ require (
github.com/jsimonetti/rtnetlink v1.4.0 // indirect
github.com/klauspost/compress v1.17.11 // indirect
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
github.com/klauspost/pgzip v1.2.5 // indirect
github.com/kortschak/wol v0.0.0-20200729010619-da482cc4850a // indirect
github.com/libdns/alidns v1.0.5-libdns.v1.beta1 // indirect
github.com/libdns/cloudflare v0.2.2-0.20250708034226-c574dccb31a6 // indirect
Expand All @@ -136,29 +165,25 @@ require (
github.com/metacubex/tfo-go v0.0.0-20250921095601-b102db4216c0 // indirect
github.com/metacubex/utls v1.8.4 // indirect
github.com/mholt/acmez/v3 v3.1.2 // indirect
github.com/mholt/archiver/v3 v3.5.1 // indirect
github.com/miekg/dns v1.1.67 // indirect
github.com/mitchellh/go-ps v1.0.0 // indirect
github.com/mschoch/smat v0.2.0 // indirect
github.com/nwaples/rardecode v1.1.2 // indirect
github.com/oschwald/geoip2-golang v1.9.0 // indirect
github.com/oschwald/maxminddb-golang v1.13.1 // indirect
github.com/oxtoacart/bpool v0.0.0-20190530202638-03653db5a59c // indirect
github.com/pierrec/lz4/v4 v4.1.21 // indirect
github.com/pion/datachannel v1.5.5 // indirect
github.com/pion/dtls/v2 v2.2.7 // indirect
github.com/pion/datachannel v1.5.10 // indirect
github.com/pion/dtls/v2 v2.2.12 // indirect
github.com/pion/ice/v2 v2.3.24 // indirect
github.com/pion/interceptor v0.1.25 // indirect
github.com/pion/logging v0.2.2 // indirect
github.com/pion/interceptor v0.1.40 // indirect
github.com/pion/logging v0.2.4 // indirect
github.com/pion/mdns v0.0.12 // indirect
github.com/pion/randutil v0.1.0 // indirect
github.com/pion/rtcp v1.2.12 // indirect
github.com/pion/rtp v1.8.5 // indirect
github.com/pion/sctp v1.8.16 // indirect
github.com/pion/sdp/v3 v3.0.9 // indirect
github.com/pion/rtcp v1.2.15 // indirect
github.com/pion/rtp v1.8.19 // indirect
github.com/pion/sctp v1.8.39 // indirect
github.com/pion/sdp/v3 v3.0.14 // indirect
github.com/pion/srtp/v2 v2.0.18 // indirect
github.com/pion/stun v0.6.1 // indirect
github.com/pion/transport/v2 v2.2.4 // indirect
github.com/pion/transport v0.14.1 // indirect
github.com/pion/transport/v2 v2.2.10 // indirect
github.com/pion/turn/v2 v2.1.3 // indirect
github.com/pion/webrtc/v3 v3.2.40 // indirect
github.com/pkg/errors v0.9.1 // indirect
Expand Down Expand Up @@ -201,20 +226,16 @@ require (
github.com/tevino/abool/v2 v2.1.0 // indirect
github.com/tidwall/btree v1.6.0 // indirect
github.com/u-root/uio v0.0.0-20240224005618-d2acac8f3701 // indirect
github.com/ulikunitz/xz v0.5.10 // indirect
github.com/vishvananda/netns v0.0.5 // indirect
github.com/x448/float16 v0.8.4 // indirect
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
github.com/zeebo/blake3 v0.2.4 // indirect
go.etcd.io/bbolt v1.3.6 // indirect
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
go.uber.org/mock v0.5.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.27.0 // indirect
go.uber.org/zap/exp v0.3.0 // indirect
go4.org/mem v0.0.0-20240501181205-ae6ca9944745 // indirect
go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect
golang.org/x/crypto v0.47.0 // indirect
golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect
golang.org/x/mod v0.31.0 // indirect
Expand All @@ -227,7 +248,6 @@ require (
golang.org/x/tools v0.40.0 // indirect
golang.zx2c4.com/wintun v0.0.0-20230126152724-0fa3db229ce2 // indirect
golang.zx2c4.com/wireguard/windows v0.5.3 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect
google.golang.org/grpc v1.78.0 // indirect
google.golang.org/protobuf v1.36.11 // indirect
Expand Down
Loading