Releases: Jigsaw-Code/outline-sdk
x/v0.0.5 - Tools Folder
In this release we moved the command line tools from x/examples
to x/tools
, to better clarify they are tools for people to use, not just examples.
Our README has a list of the command line tools and how to use them.
This is a breaking change. Where before you would use:
$ go run github.com/Jigsaw-Code/outline-sdk/x/examples/resolve@latest -type A -transport "tls" -resolver 8.8.8.8:853 -tcp getoutline.org.
You now have to use:
$ go run github.com/Jigsaw-Code/outline-sdk/x/tools/resolve@latest -type A -transport "tls" -resolver 8.8.8.8:853 -tcp getoutline.org.
Note the path difference.
If you are using the tools in scripts, we recommend pinning to a specific version. For example:
$ go run github.com/Jigsaw-Code/outline-sdk/x/tools/[email protected] -type A -transport "tls" -resolver 8.8.8.8:853 -tcp getoutline.org.
x/v0.0.4 - HTTP/2 and HTTP/3 Support for CONNECT Client and more
New Features
-
HTTP/2 and HTTP/3 Support for CONNECT Client: package
x/httpconnect
now supports HTTP/2 and HTTP/3, enabling more efficient and modern communication protocols for improved performance and reliability. Thanks @nikolaikabanenkov! -
Strategy Result Caching on Mobile Proxy: To significantly speed up connection times on app lifecycle events, we've introduced caching for strategy results in the StrategyFinder. This means that once a successful connection strategy is found, it can be quickly reused for subsequent connections. This feature has also been integrated into the smart-proxy and app maker.
-
New Measurement Tool: A new measure tool has been added to the x module. This utility allows developers to test and measure the performance of different connection paths as shown on this Measure Website Censorship notebook.
-
Build Task for mobileproxy: A new Taskfile has been added to streamline the build process for mobileproxy, making development and deployment simpler.
Full Changelog: x/v0.0.3...x/v0.0.4
- feat(smart): add strategy result caching to StrategyFinder by @jyyi1 in #426
- feat(x): x taskfile, with mobileproxy build task by @daniellacosse in #449
- feat(example): add strategy cache to smart-proxy by @jyyi1 in #442
- feat(x): Checking in the measure tool by @ohnorobo in #450
- feat(x): log on dialer test timeout by @ohnorobo in #455
- fix(x) tiny ctx change by @ohnorobo in #461
- feat(x): add HTTP/2 and HTTP/3 support for CONNECT client by @nikolaikabanenkov in #456
- feat(example): introduce
StrategyCache
to website wrapper by @jyyi1 in #460
v0.0.20 [BREAKING] Extensible TLS Config
We've revamped our TLS config in this release to offer a more robust and understandable approach to certificate validation.
Recognizing the limitations of numerous, potentially conflicting configuration options with unclear interactions, we introduced a way to inject custom certificate verifiers. This design promotes clarity, avoids conflicting settings, and allows for more flexible and scenario-specific certificate validation logic.
BREAKING CHANGE: If you used tls.Config.CertificateName
, you will need to migrate to setting tls.Config.CertVerifier
with a tls.StandardCertVerifier
with the certificate name you need. That now supports overriding the Root CAs, which was not possible before.
What's Changed
Full Changelog: v0.0.19...v0.0.20
x/v0.0.3 Psiphon fallback proxy support and MobileProxy improvements
We're pleased to announce the release v0.0.3 of the Outline SDK x
module.
This release introduces support for using Psiphon as a fallback proxy in Mobile Proxy. You need to acquire a suitable configuration directly with the Psiphon team for it to work. You can find the config details in the Smart Dialer documentation.
This release also introduces major usability improvements to the Web Wrapper, including a doctor script to help users diagnose dependency problems.
Uses Outline SDK main module v0.0.20
What's Changed
Psiphon fallback support:
- chore(x): updating psiphon dep by @ohnorobo in #391
- chore(x) switch yaml lib from yaml.v3 to go-yaml by @ohnorobo in #397
- feat(x): Parse psiphon config format as part of smart-proxy by @ohnorobo in #394
- feat(x) explicit timeout in psiphon-fetch start by @ohnorobo in #402
- feat(x) vary getPsiphonDialer implementation depending on build tag by @ohnorobo in #406
- bug(x) fix psiphon wrapper context by @ohnorobo in #427
- feat(x) create the psiphon dialer in smart-proxy by @ohnorobo in #404
Web wrapper improvements:
- feat: navigator demo and app project builder by @daniellacosse in #360
- improve website wrapper app instructions and add doctor script by @daniellacosse in #407
- feat(ww): harden mobileproxy integration by @daniellacosse in #411
- feat(ww): Support appID, appName, and output folder by @daniellacosse in #408
- docs: add web-wrapper to root README by @daniellacosse in #414
- fix: separate "build" and "start" commands by @daniellacosse in #428
Misc updates:
- chore(x): update x with main module v0.0.20 by @fortuna in #433
- update readme instructions by @ohnorobo in #392
- bug(x) don't attempt to fallback when there are no fallbacks by @ohnorobo in #412
Full Changelog: x/v0.0.2...x/v0.0.3
v0.0.19 Bug fix in the network package
x/v0.0.2 Proxy fallback support added to Mobile Proxy
We're pleased to announce the release v0.0.2 of the Outline SDK x
module. This release introduces a significant enhancement for integrators: built-in proxy fallback support within the Mobile Proxy.
This highly requested feature simplifies integration for partners using the Outline SDK. Previously, implementing proxy fallback required duplicated effort in application code for both Android and iOS. With this release, the SDK now handles this logic directly, streamlining development and improving reliability.
You can find the config details in the Smart Dialer documentation.
Uses Outline SDK main module v0.0.19
What's Changed
Features:
Bug Fixes:
- fix(x): return
ErrClosed
for abnormal closures by @sbruens in #377 - fix(x): fix error in ws2endpoint by @fortuna in #378
- fix: example command in stream dialer by @ohnorobo in #380
Documentation:
- doc(x): Improve configurl documentation by @fortuna in #379
- docs(x): update smartproxy readme to yaml format by @ohnorobo in #381
New Contributors
Full Changelog: x/v0.0.1...x/v0.0.2
x/v0.0.1 Initial x/ release
This release starts the versioning the x
module, providing some key benefits:
- Makes it clearer what version of the code we are talking about.
- Helps customers pull the right version
- Allows us to properly communicate new features and changes to the API
- Enables a better Go doc experience, since you can navigate the versions.
Note that we are using version 0, which means APIs may change. We will try to minimize breakage and communicate when that happens.
v0.0.18 Salt Generator support for Shadowsocks Packet Listener
This release adds support for Salt Generators in the Shadowsocks Packet Listeners, allowing one to use prefixes with UDP.
What's Changed
- fix: try base64 legacy decoding for maximum compatibility by @amircybersec in #298
- add
packetConn
constructor for re-use inoutline-ss-server
by @sbruens in #300 - feat: add SaltGenerator to Shadowsocks PacketListener by @fortuna in #370
Full Changelog: v0.0.17...v0.0.18
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