Releases: Jigsaw-Code/outline-sdk
v0.0.17 SOCKS5 UDP Client support
We're excited to announce that our SOCKS5 client library now supports UDP! You can now utilize SOCKS5 proxies to measure the performance of DNS, QUIC, and other UDP-based protocols, which was only possible over Shadowsocks before. This will open up the possibilities for remote testing.
This improvement (#257) was made possible thanks to the valuable contributions of @amircybersec as part of his OTF ICFP Fellowship.
Full Changelog: v0.0.16...v0.0.17
v0.0.16 Bug fix and TLS Record Fragmentation optimization
This is a minor release that fixes an important bug in the duplexConn.ReadFrom. Please upgrade.
If also introduces an optimized version of the TLS Record Fragmentation writer
What's Changed
- feat: add
tlsfrag.RecordLenFuncWriter
without waiting for the entire record by @jyyi1 in #207 - fix: duplexConn ReadFrom and connect handler initial data coalescing by @fortuna in #229
Full Changelog: v0.0.15...v0.0.16
v0.0.15 SOCKS5 client with username/password authentication
Our SOCKS5 client library now supports basic username/password authentication via socks5.StreamDialer.SetCredentials(username, password)
.
This makes SOCKS5 suitable for public proxy usage when paired with secure transports like TLS. The Outline SDK provides the necessary libraries for both SOCKS5-over-TLS and SOCKS5-over-Shadowsocks transport.
Thanks @amircybersec for the contribution: #189
Full Changelog: v0.0.14...v0.0.15
v0.0.14 Streamline use of DNS resolvers, Enhanced Reliability
Effortless Custom DNS with dns.NewStreamDialer
Configuring custom DNS resolvers within StreamDialers is straightforward now. Introducing dns.NewStreamDialer: provide your DNS resolver and a base dialer, and it handles Happy Eyeballs resolution and selection for optimized connectivity.
Fixed Connection Leaks
We've addressed connection leaks in error scenarios. This is an important upgrade for maintaining application stability.
Changelog
- feat: create dns.NewStreamDialer by @fortuna in #180
- fix: prevent conn leakage in
transport
,tls
andtlsfrag
by @jyyi1 in #195
Full Changelog: v0.0.13...v0.0.14
v0.0.13: Faster, More Resilient Connections with Happy Eyeballs v2
We're excited to introduce Happy Eyeballs v2 support in the Outline SDK! This updated algorithm streamlines network connections, providing a smoother and more reliable experience for your users.
Key benefits of Happy Eyeballs v2
- Snappier Connections: Addresses are resolved and connection attempts start concurrently, minimizing delays caused by slow networks or unresponsive servers.
- Improved Resilience: Offers built-in connection fallback logic. Great for dealing with network interference or using hard-coded IPs.
- Beyond Go's Default: Surpasses the limitations of Go's built-in networking library (which uses Happy Eyeballs v1).
How it works
Happy Eyeballs v2 intelligently initiates connection attempts across IPv4 and IPv6 in parallel. This significantly reduces wait times, especially in less-than-ideal network conditions.
Get Started
Upgrade to Outline SDK v.0.0.13 and utilize the transport.HappyEyeballsStreamDialer
to make your applications faster and more reliable.
Let us know how Happy Eyeballs v2 is improving your application's connectivity!
Changelog
Full Changelog: v0.0.12...v.0.0.13
v0.0.12 BREAKING: Renamed core transport methods and types
Be aware that this release breaks backwards-compatibility. This was discussed on #150
To migrate, rename:
- StreamDialer.Dial -> StreamDialer.DialStream
- PacketDialer.Dial -> PacketDialer.DialPacket
- StreamEndpoint.Connect -> StreamEndpoint.ConnectStream
- PacketEndpoint.Connect -> PacketEndpoint.ConnectPacket
- TCPStreamDialer -> TCPDialer
- UDPStreamDialer -> UDPDialer
What's Changed
Full Changelog: v0.0.11...v0.0.12
v0.0.11 - DNS Library and Function Endpoint and Dialer
What's Changed
- feat: introduce Func Endpoints and Dialers by @fortuna in #153
- feat: create DNS library by @fortuna in #141
Full Changelog: v0.0.10...v0.0.11