Releases: Chilledheart/yass
M131 Release 3
New Feature
OpenWrt/MUSL build supports more legacy distros (#1138).
Previous builds demand madvise calls and latest musl libc library. Now it changes to static build and disables madvise usages, so it is compatible with Asuswrt Merlin and other legacy distros now link newer musl libc statically from OpenWrt 23.05. As side effect, performance degrade expected.
Full Optimization (-O3) on Android build (#1119).
Previously Android builds are optimized for size (-Os). Now it changes to Full Opmization (-O3). Performance Improvement is expected.
Server SNI Support is added on iOS build (#1135).
Previously iOS build hides Server SNI for simplicity. Now the Server SNI TextField is added for potential use.
Disabling assertions on Official Build (#1125).
Now assertions (including those within STL) are disabled for Official Build. Performance Improvement is expected.
Android AAB bundle provided (#1121)
AAB bundles are now provided besides APK packages. You can extract debuginfo from AAB bundles directly.
Bugfix
Potential Crash on iOS fixed (#1134).
Potential Crash when stopping happens in iOS and now it is fixed.
[Security] http2: handle HTTP/2 Push as soft error (#1139)
This feature is not currently supported by any major browser.
[Security] http2: handle END_STREAM gracefully (#1140)
Allow more grace time for the client to close the connection after yass receives end of file flag.
Support outside Github Release
iOS support
Join via TestFlight https://testflight.apple.com/join/6AkiEq09. Install TestFlight first.
The relevant updates on TestFlight will be completed in the foreseeable time
Flathub Support
Install via Flathub https://flathub.org/apps/io.github.chilledheart.yass. Install Flatpak first.
The relevant updates on Flathub will be completed in the foreseeable time
What's Changed
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- Bump chromium 131 dependents by @Chilledheart in #1111
- tls: Add a flag to use ML-KEM instead of Kyber by @Chilledheart in #1112
- tls: handle dangling DoPeek call by @Chilledheart in #1114
- tls: enable ML-KEM by default by @Chilledheart in #1115
- gh actions: add aarch64-alpine and armhf-alpine by @Chilledheart in #1116
- bump asio to efdc25ab9 (1.31.0) by @Chilledheart in #1117
- net: fix http proxy integration with telegram by @Chilledheart in #1118
- android: use -O3 instead of -Os for gh releases by @Chilledheart in #1119
- bump mbedtls to 3.6.2 by @Chilledheart in #1120
- android: build aab bundle to contain debug symbols by @Chilledheart in #1121
- rust: bump to 1.82.0 by @Chilledheart in #1122
- tls: Enable ALPS for HTTP/2 by @Chilledheart in #1123
- net: use googleurl's stricmp by @Chilledheart in #1124
- build: add enable-assertions option by @Chilledheart in #1125
- core: move more files to googleurl by @Chilledheart in #1126
- core: move rand_util to googleurl by @Chilledheart in #1128
- core: move logging header to pollyfills by @Chilledheart in #1129
- bump nghttp2 to v1.64.0 by @Chilledheart in #1130
- core: move logging misc to googleurl by @Chilledheart in #1131
- core: move logging source to googleurl by @Chilledheart in #1132
- ios: fix crash when stopping by @Chilledheart in #1134
- ios: add server sni ui by @Chilledheart in #1135
- build: prepare for fedora 40 in place of fedora 39 by @Chilledheart in #1137
- [compatiblity] musl/openwrt: don't call madvise any more by @Chilledheart in #1138
- http2: handle HTTP/2 Push as soft error by @Chilledheart in #1139
- http2: handle END_STREAM gracefully by @Chilledheart in #1140
Full Changelog: 1.14.4...1.15.3
M130 Release 5
New Feature
OpenWrt/MUSL build supports more legacy distros (#1138).
Previous builds demand madvise calls and latest musl libc library. Now it changes to static build and disables madvise usages, so it is compatible with Asuswrt Merlin and other legacy distros now link newer musl libc statically from OpenWrt 23.05. As side effect, performance degrade expected.
Full Optimization (-O3) on Android build (#1119).
Previously Android builds are optimized for size (-Os). Now it changes to Full Opmization (-O3). Performance Improvement is expected.
Server SNI Support is added on iOS build (#1135).
Previously iOS build hides Server SNI for simplicity. Now the Server SNI TextField is added for potential use.
Disabling assertions on Official Build (#1125).
Now assertions (including those within STL) are disabled for Official Build. Performance Improvement is expected.
Android AAB bundle provided (#1121)
AAB bundles are now provided besides APK packages. You can extract debuginfo from AAB bundles directly.
Bugfix
Potential Crash on iOS fixed (#1134).
Potential Crash when stopping happens in iOS and now it is fixed.
[Security] http2: handle HTTP/2 Push as soft error (#1139)
This feature is not currently supported by any major browser.
[Security] http2: handle END_STREAM gracefully (#1140)
Allow more grace time for the client to close the connection after yass receives end of file flag.
Android 16KB mode support
Since 1.14.2, android 16 kb page size support is added targeting Android 15. You can now install and use this apk for any Android device which enables 16 KB mode.
Some benefits from 16 kb memory page size:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
Fix integration issue with Telegram on Linux newer than 5.6.1 (or any application built against Qt 6.8)
Starting with 1.15.0 and 1.14.4 (#1118), Telegram on Linux (newer than 5.6.1) is capable to connect yass service via http proxy.
See qt6.8's change: qt/qtbase@0fef8f53c3e and qt/qtbase@15b0bd69ff2
Post Quantum ML-KEM key-agreements in TLS 1.3
Starting with 1.15.0 and 1.14.3 (#1089), Post Quantum ML-KEM instead of Kyber Support is enabled for TLS 1.3.
Fix a crash due to dangling SSLSocket::DoPeek call
Starting with 1.15.0 and 1.14.3, a potential crash has been fixed during TLS handshake in Windows (#1113).
Contribute your translation (i18n)
Please submit translations via Transifex: https://app.transifex.com/yetanothershadowsocket/yetanothershadowsocket
Available Project:
- Qt5/Qt6
- Gtk3
- Gtk4
- Android
- iOS
- macOS
- Win32 (Incompatible with RC format)
TCP Congestion Algorithm (Linux only)
You can change tcp connection algorithm with connection to server from version 1.13.1 in Option Dialog.
If not found, you must run modprobe tcp_CONGESTION
to load kernel module manually before use it.
-
list all supported built congestion algorithms:
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4/tcp*.ko
-
add the name of kernel module such as
tcp_bbr
to/etc/modules-load.d/bbr.conf
to ensure the the kernel module loaded prior to yass.
Dropped CentOS 7 Support (EOL)
Last latest CentOS 7 binaries are still available at M127 Release 3 and M126 Release 7
KDE (Qt) support
From version 1.10.5, KDE (Qt6) support is added in source, you now can compile it with -DGUI=on -DUSE_QT6=on
cmake option.
From version 1.11.2, KDE (Qt5) support is added in source, you now can compile it with -DGUI=on -DUSE_QT5=on
cmake option.
From version 1.11.1, Qt6 and GTK4 prebuilt deb and rpm packages are also provided.
From version 1.11.2, Qt5 prebuilt deb and rpm packages are also provided.
Windows binary now switched to ucrt runtime
From version 1.10.5, for windows users below windows 10 now it requires KB2999226 installed on their machines.
For XP SP3/Vista Users, please use 32-bit releases and install Visual C++ 2010 x86 Runtime.
Caddy HTTPS protocol support
Caddy's HTTPS protocol is compatible from release 1.10.3 and 1.9.7.
Tcmalloc support enabled for both windows and linux
Tcmalloc support is added for windows since 1.10.4 (excluding arm64/aarch64 platform) and for linux.
Fix support for macOS 15
macOS now requires entitlement of local network for dns resolving. So we switch back to system dns resolver instead of c-ares.
This change is landed at 1.13.1 and 1.12.4.
Android vpn service support
Android releases from 1.6.3 are signed and have been updated to add VpnService support.
iOS packet tunnel support
iOS releases from 1.5.22 have fixed memory pressure crashes and have been updated to add Packet tunnel support. You need a PC (with iTune) or a mac (through Finder) to install ipa directly or wait for app store release.
Alternative way: Join TesfFlight. For Apple Silicon macOS Users such as M1/M2/M3, you can also install packet tunnel version via TestFlight.
What's Changed
- Bump chromium 130 dependents by @Chilledheart in #1090
- use jsoncpp for official build by @Chilledheart in #1091
- net: apply tcp congestion only between cli and server by @Chilledheart in #1092
- cmake: use static build for musl by @Chilledheart in #1093
- bump benchmark to version 1.9.0 by @Chilledheart in #1094
- bump protobuf to match grpc default by @Chilledheart in #1095
- c-ares: backport some patches by @Chilledheart in #1096
- gtk4: fix typo in icon name by @Chilledheart in #1097
- net: cleanup pending listen ctx on stop by @Chilledheart in #1098
- build: enforce jsoncpp usage by @Chilledheart in #1099
- flatpak: use qt 6.6 by @Chilledheart in #1101
- win32: handle escape in about dialog by @Chilledheart in #1102
- mac: produce dSYM files correctly by @Chilledheart in #1104
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- 99c6715 tls: Add a flag to use ML-KEM instead of Kyber
- b35bc35 tls: support post quantumn key-agreements in server side
- 53a9919 tls: handle dangling DoPeek call
- 67e8cbe tls: enable ML-KEM by default
- ce13cc2 gh actions: add aarch64-alpine and armhf-alpine
- 568592e qt: fix missing translation for post quantum option
- 9cdbffc net: fix http proxy integration with telegram
- 329a439 cli: write error message to socks4/socks5 replies
- 3109078 android: use -O3 instead of -Os for gh releases
- dffbfa6 android: build aab bundle to contain debug symbols
- 4924707 tls: Enable ALPS for HTTP/2
- 377c8fe rust: bump to 1.82.0
- 720bf00 tls: support both of mlkem and kyber at server side
- 3889b6d tls: config enable_post_quantum_kyber is used for server-side as well
- fd3e992 build: add enable-assertions option
- 629995d logging: change default loglevel
- 6d883fa ios: fix crash when stopping
- 8571318 ios: adjust cipher method ui
- 0531d6c ios: add server sni ui
- 64d5ae4 [compatiblity] musl/openwrt: don't call madvise any more
- 48c137e http2: handle HTTP/2 Push as soft error
- ce66153 http2: handle END_STREAM gracefully
Full Changelog: 1.13.2...1.14.5
M131 Release 2
New Feature
Full Optimization (-O3) on Android build (#1119).
Previously Android builds are optimized for size (-Os). Now it changes to Full Opmization (-O3). Performance Improvement is expected.
Server SNI Support is added on iOS build (#1135).
Previously iOS build hides Server SNI for simplicity. Now the Server SNI TextField is added for potential use.
Disabling assertions on Official Build (#1125).
Now assertions (including those within STL) are disabled for Official Build. Performance Improvement is expected.
Android AAB bundle provided (#1121)
AAB bundles are now provided besides APK packages. You can extract debuginfo from AAB bundles directly.
Bugfix
Potential Crash on iOS fixed (#1134).
Potential Crash when stopping happens in iOS and now it is fixed.
Support outside Github Release
iOS support
Join via TestFlight https://testflight.apple.com/join/6AkiEq09. Install TestFlight first.
The relevant updates on TestFlight will be completed in the foreseeable time
Flathub Support
Install via Flathub https://flathub.org/apps/io.github.chilledheart.yass. Install Flatpak first.
The relevant updates on Flathub will be completed in the foreseeable time
What's Changed
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- Bump chromium 131 dependents by @Chilledheart in #1111
- tls: Add a flag to use ML-KEM instead of Kyber by @Chilledheart in #1112
- tls: handle dangling DoPeek call by @Chilledheart in #1114
- tls: enable ML-KEM by default by @Chilledheart in #1115
- gh actions: add aarch64-alpine and armhf-alpine by @Chilledheart in #1116
- bump asio to efdc25ab9 (1.31.0) by @Chilledheart in #1117
- net: fix http proxy integration with telegram by @Chilledheart in #1118
- android: use -O3 instead of -Os for gh releases by @Chilledheart in #1119
- bump mbedtls to 3.6.2 by @Chilledheart in #1120
- android: build aab bundle to contain debug symbols by @Chilledheart in #1121
- rust: bump to 1.82.0 by @Chilledheart in #1122
- tls: Enable ALPS for HTTP/2 by @Chilledheart in #1123
- net: use googleurl's stricmp by @Chilledheart in #1124
- build: add enable-assertions option by @Chilledheart in #1125
- core: move more files to googleurl by @Chilledheart in #1126
- core: move rand_util to googleurl by @Chilledheart in #1128
- core: move logging header to pollyfills by @Chilledheart in #1129
- bump nghttp2 to v1.64.0 by @Chilledheart in #1130
- core: move logging misc to googleurl by @Chilledheart in #1131
- core: move logging source to googleurl by @Chilledheart in #1132
- ios: fix crash when stopping by @Chilledheart in #1134
- ios: add server sni ui by @Chilledheart in #1135
Full Changelog: 1.14.4...1.15.1
M131 Release 1
New Feature
Full Optimization (-O3) on Android build (#1119).
Previously Android builds are optimized for size (-Os). Now it changes to Full Opmization (-O3). Performance Improvement is expected.
Server SNI Support is added on iOS build (#1135).
Previously iOS build hides Server SNI for simplicity. Now the Server SNI TextField is added for potential use.
Disabling assertions on Official Build (#1125).
Now assertions (including those within STL) are disabled for Official Build. Performance Improvement is expected.
Android AAB bundle provided (#1121)
AAB bundles are now provided besides APK packages. You can extract debuginfo from AAB bundles directly.
Bugfix
Potential Crash on iOS fixed (#1134).
Potential Crash when stopping happens in iOS and now it is fixed.
Support outside Github Release
iOS support
Join via TestFlight https://testflight.apple.com/join/6AkiEq09. Install TestFlight first.
The relevant updates on TestFlight will be completed in the foreseeable time
Flathub Support
Install via Flathub https://flathub.org/apps/io.github.chilledheart.yass. Install Flatpak first.
The relevant updates on Flathub will be completed in the foreseeable time
What's Changed
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- Bump chromium 131 dependents by @Chilledheart in #1111
- tls: Add a flag to use ML-KEM instead of Kyber by @Chilledheart in #1112
- tls: handle dangling DoPeek call by @Chilledheart in #1114
- tls: enable ML-KEM by default by @Chilledheart in #1115
- gh actions: add aarch64-alpine and armhf-alpine by @Chilledheart in #1116
- bump asio to efdc25ab9 (1.31.0) by @Chilledheart in #1117
- net: fix http proxy integration with telegram by @Chilledheart in #1118
- android: use -O3 instead of -Os for gh releases by @Chilledheart in #1119
- bump mbedtls to 3.6.2 by @Chilledheart in #1120
- android: build aab bundle to contain debug symbols by @Chilledheart in #1121
- rust: bump to 1.82.0 by @Chilledheart in #1122
- tls: Enable ALPS for HTTP/2 by @Chilledheart in #1123
- net: use googleurl's stricmp by @Chilledheart in #1124
- build: add enable-assertions option by @Chilledheart in #1125
- core: move more files to googleurl by @Chilledheart in #1126
- core: move rand_util to googleurl by @Chilledheart in #1128
- core: move logging header to pollyfills by @Chilledheart in #1129
- bump nghttp2 to v1.64.0 by @Chilledheart in #1130
- core: move logging misc to googleurl by @Chilledheart in #1131
- core: move logging source to googleurl by @Chilledheart in #1132
- ios: fix crash when stopping by @Chilledheart in #1134
- ios: add server sni ui by @Chilledheart in #1135
Full Changelog: 1.14.4...1.15.1
M131 Release 0
New Feature
Post Quantum ML-KEM key-agreements in TLS 1.3 (#1115)
Use Post Quantum key-agreements ML-KEM (draft-connolly-tls-mlkem-key-agreement) in place of Kyber(draft-tls-westerbaan-xyber768d00-02) for TLS 1.3.
Android 16KB mode support (#1109)
Android 16 kb page size support (#1109) is added targeting Android 15. You can now install and use this apk for any Android device which enables 16 KB mode.
Some benefits from 16 kb memory page size:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
Bugfix
Fix integration issue with http-proxy clients built against Qt 6.8 (#1118)
Telegram on Linux (newer than 5.6.1) is capable to connect yass service via http proxy.
See qt6.8's change: qt/qtbase@0fef8f53c3e and qt/qtbase@15b0bd69ff2
Fix a crash due to dangling SSLSocket::DoPeek call (#1114)
A potential crash on windows has been fixed during TLS handshake in Windows (#1113).
Support outside Github Release
iOS support
Join via TestFlight https://testflight.apple.com/join/6AkiEq09. Install TestFlight first.
The relevant updates on TestFlight will be completed in the foreseeable time
Flathub Support
Install via Flathub https://flathub.org/apps/io.github.chilledheart.yass. Install Flatpak first.
The relevant updates on Flathub will be completed in the foreseeable time
What's Changed
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- Bump chromium 131 dependents by @Chilledheart in #1111
- tls: Add a flag to use ML-KEM instead of Kyber by @Chilledheart in #1112
- tls: handle dangling DoPeek call by @Chilledheart in #1114
- tls: enable ML-KEM by default by @Chilledheart in #1115
- gh actions: add aarch64-alpine and armhf-alpine by @Chilledheart in #1116
- bump asio to efdc25ab9 (1.31.0) by @Chilledheart in #1117
- net: fix http proxy integration with telegram by @Chilledheart in #1118
Full Changelog: 1.14.4...1.15.0
M130 Release 4
Android 16KB mode support
Since 1.14.2, android 16 kb page size support is added targeting Android 15. You can now install and use this apk for any Android device which enables 16 KB mode.
Some benefits from 16 kb memory page size:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
Fix integration issue with Telegram on Linux newer than 5.6.1 (or any application built against Qt 6.8)
Starting with 1.15.0 and 1.14.4 (#1118), Telegram on Linux (newer than 5.6.1) is capable to connect yass service via http proxy.
See qt6.8's change: qt/qtbase@0fef8f53c3e and qt/qtbase@15b0bd69ff2
Post Quantum ML-KEM key-agreements in TLS 1.3
Starting with 1.15.0 and 1.14.3 (#1089), Post Quantum ML-KEM instead of Kyber Support is enabled for TLS 1.3.
Fix a crash due to dangling SSLSocket::DoPeek call
Starting with 1.15.0 and 1.14.3, a potential crash has been fixed during TLS handshake in Windows (#1113).
Contribute your translation (i18n)
Please submit translations via Transifex: https://app.transifex.com/yetanothershadowsocket/yetanothershadowsocket
Available Project:
- Qt5/Qt6
- Gtk3
- Gtk4
- Android
- iOS
- macOS
- Win32 (Incompatible with RC format)
TCP Congestion Algorithm (Linux only)
You can change tcp connection algorithm with connection to server from version 1.13.1 in Option Dialog.
If not found, you must run modprobe tcp_CONGESTION
to load kernel module manually before use it.
-
list all supported built congestion algorithms:
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4/tcp*.ko
-
add the name of kernel module such as
tcp_bbr
to/etc/modules-load.d/bbr.conf
to ensure the the kernel module loaded prior to yass.
Dropped CentOS 7 Support (EOL)
Last latest CentOS 7 binaries are still available at M127 Release 3 and M126 Release 7
KDE (Qt) support
From version 1.10.5, KDE (Qt6) support is added in source, you now can compile it with -DGUI=on -DUSE_QT6=on
cmake option.
From version 1.11.2, KDE (Qt5) support is added in source, you now can compile it with -DGUI=on -DUSE_QT5=on
cmake option.
From version 1.11.1, Qt6 and GTK4 prebuilt deb and rpm packages are also provided.
From version 1.11.2, Qt5 prebuilt deb and rpm packages are also provided.
Windows binary now switched to ucrt runtime
From version 1.10.5, for windows users below windows 10 now it requires KB2999226 installed on their machines.
For XP SP3/Vista Users, please use 32-bit releases and install Visual C++ 2010 x86 Runtime.
Caddy HTTPS protocol support
Caddy's HTTPS protocol is compatible from release 1.10.3 and 1.9.7.
Tcmalloc support enabled for both windows and linux
Tcmalloc support is added for windows since 1.10.4 (excluding arm64/aarch64 platform) and for linux.
Fix support for macOS 15
macOS now requires entitlement of local network for dns resolving. So we switch back to system dns resolver instead of c-ares.
This change is landed at 1.13.1 and 1.12.4.
Android vpn service support
Android releases from 1.6.3 are signed and have been updated to add VpnService support.
iOS packet tunnel support
iOS releases from 1.5.22 have fixed memory pressure crashes and have been updated to add Packet tunnel support. You need a PC (with iTune) or a mac (through Finder) to install ipa directly or wait for app store release.
Alternative way: Join TesfFlight. For Apple Silicon macOS Users such as M1/M2/M3, you can also install packet tunnel version via TestFlight.
What's Changed
- Bump chromium 130 dependents by @Chilledheart in #1090
- use jsoncpp for official build by @Chilledheart in #1091
- net: apply tcp congestion only between cli and server by @Chilledheart in #1092
- cmake: use static build for musl by @Chilledheart in #1093
- bump benchmark to version 1.9.0 by @Chilledheart in #1094
- bump protobuf to match grpc default by @Chilledheart in #1095
- c-ares: backport some patches by @Chilledheart in #1096
- gtk4: fix typo in icon name by @Chilledheart in #1097
- net: cleanup pending listen ctx on stop by @Chilledheart in #1098
- build: enforce jsoncpp usage by @Chilledheart in #1099
- flatpak: use qt 6.6 by @Chilledheart in #1101
- win32: handle escape in about dialog by @Chilledheart in #1102
- mac: produce dSYM files correctly by @Chilledheart in #1104
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- 99c6715 tls: Add a flag to use ML-KEM instead of Kyber
- b35bc35 tls: support post quantumn key-agreements in server side
- 53a9919 tls: handle dangling DoPeek call
- 67e8cbe tls: enable ML-KEM by default
- ce13cc2 gh actions: add aarch64-alpine and armhf-alpine
- 568592e qt: fix missing translation for post quantum option
- 9cdbffc net: fix http proxy integration with telegram
Full Changelog: 1.13.2...1.14.4
M130 Release 3
Android 16KB mode support
Since 1.14.2, android 16 kb page size support is added targeting Android 15. You can now install and use this apk for any Android device which enables 16 KB mode.
Some benefits from 16 kb memory page size:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
Post Quantum ML-KEM key-agreements in TLS 1.3
Starting with 1.15.0 and 1.14.3 (#1089), Post Quantum ML-KEM instead of Kyber Support is enabled for TLS 1.3.
Fix a crash due to dangling SSLSocket::DoPeek call
Starting with 1.15.0 and 1.14.3, a potential crash has been fixed during TLS handshake in Windows (#1113).
Contribute your translation (i18n)
Please submit translations via Transifex: https://app.transifex.com/yetanothershadowsocket/yetanothershadowsocket
Available Project:
- Qt5/Qt6
- Gtk3
- Gtk4
- Android
- iOS
- macOS
- Win32 (Incompatible with RC format)
TCP Congestion Algorithm (Linux only)
You can change tcp connection algorithm with connection to server from version 1.13.1 in Option Dialog.
If not found, you must run modprobe tcp_CONGESTION
to load kernel module manually before use it.
-
list all supported built congestion algorithms:
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4/tcp*.ko
-
add the name of kernel module such as
tcp_bbr
to/etc/modules-load.d/bbr.conf
to ensure the the kernel module loaded prior to yass.
Dropped CentOS 7 Support (EOL)
Last latest CentOS 7 binaries are still available at M127 Release 3 and M126 Release 7
KDE (Qt) support
From version 1.10.5, KDE (Qt6) support is added in source, you now can compile it with -DGUI=on -DUSE_QT6=on
cmake option.
From version 1.11.2, KDE (Qt5) support is added in source, you now can compile it with -DGUI=on -DUSE_QT5=on
cmake option.
From version 1.11.1, Qt6 and GTK4 prebuilt deb and rpm packages are also provided.
From version 1.11.2, Qt5 prebuilt deb and rpm packages are also provided.
Windows binary now switched to ucrt runtime
From version 1.10.5, for windows users below windows 10 now it requires KB2999226 installed on their machines.
For XP SP3/Vista Users, please use 32-bit releases and install Visual C++ 2010 x86 Runtime.
Caddy HTTPS protocol support
Caddy's HTTPS protocol is compatible from release 1.10.3 and 1.9.7.
Tcmalloc support enabled for both windows and linux
Tcmalloc support is added for windows since 1.10.4 (excluding arm64/aarch64 platform) and for linux.
Fix support for macOS 15
macOS now requires entitlement of local network for dns resolving. So we switch back to system dns resolver instead of c-ares.
This change is landed at 1.13.1 and 1.12.4.
Android vpn service support
Android releases from 1.6.3 are signed and have been updated to add VpnService support.
iOS packet tunnel support
iOS releases from 1.5.22 have fixed memory pressure crashes and have been updated to add Packet tunnel support. You need a PC (with iTune) or a mac (through Finder) to install ipa directly or wait for app store release.
Alternative way: Join TesfFlight. For Apple Silicon macOS Users such as M1/M2/M3, you can also install packet tunnel version via TestFlight.
What's Changed
- Bump chromium 130 dependents by @Chilledheart in #1090
- use jsoncpp for official build by @Chilledheart in #1091
- net: apply tcp congestion only between cli and server by @Chilledheart in #1092
- cmake: use static build for musl by @Chilledheart in #1093
- bump benchmark to version 1.9.0 by @Chilledheart in #1094
- bump protobuf to match grpc default by @Chilledheart in #1095
- c-ares: backport some patches by @Chilledheart in #1096
- gtk4: fix typo in icon name by @Chilledheart in #1097
- net: cleanup pending listen ctx on stop by @Chilledheart in #1098
- build: enforce jsoncpp usage by @Chilledheart in #1099
- flatpak: use qt 6.6 by @Chilledheart in #1101
- win32: handle escape in about dialog by @Chilledheart in #1102
- mac: produce dSYM files correctly by @Chilledheart in #1104
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
- 99c6715 tls: Add a flag to use ML-KEM instead of Kyber
- b35bc35 tls: support post quantumn key-agreements in server side
- 53a9919 tls: handle dangling DoPeek call
- 67e8cbe tls: enable ML-KEM by default
Full Changelog: 1.13.2...1.14.3
M130 Release 2
Android 16KB mode support
Since 1.14.2, android 16 kb page size support is added targeting Android 15. You can now install and use this apk for any Android device which enables 16 KB mode.
Some benefits from 16 kb memory page size:
- Lower app launch times while the system is under memory pressure: 3.16% lower on average, with more significant improvements (up to 30%) for some apps that we tested
- Reduced power draw during app launch: 4.56% reduction on average
Contribute your translation (i18n)
Please submit translations via Transifex: https://app.transifex.com/yetanothershadowsocket/yetanothershadowsocket
Available Project:
- Qt5/Qt6
- Gtk3
- Gtk4
- Android
- iOS
- macOS
- Win32 (Incompatible with RC format)
Post Quantum ML-KEM key-agreements in TLS 1.3
Starting with 1.15.0 and 1.14.3 (#1089), Post Quantum ML-KEM instead of Kyber Support is enabled for TLS 1.3.
TCP Congestion Algorithm (Linux only)
You can change tcp connection algorithm with connection to server from version 1.13.1 in Option Dialog.
If not found, you must run modprobe tcp_CONGESTION
to load kernel module manually before use it.
-
list all supported built congestion algorithms:
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4/tcp*.ko
-
add the name of kernel module such as
tcp_bbr
to/etc/modules-load.d/bbr.conf
to ensure the the kernel module loaded prior to yass.
Dropped CentOS 7 Support (EOL)
Last latest CentOS 7 binaries are still available at M127 Release 3 and M126 Release 7
KDE (Qt) support
From version 1.10.5, KDE (Qt6) support is added in source, you now can compile it with -DGUI=on -DUSE_QT6=on
cmake option.
From version 1.11.2, KDE (Qt5) support is added in source, you now can compile it with -DGUI=on -DUSE_QT5=on
cmake option.
From version 1.11.1, Qt6 and GTK4 prebuilt deb and rpm packages are also provided.
From version 1.11.2, Qt5 prebuilt deb and rpm packages are also provided.
Windows binary now switched to ucrt runtime
From version 1.10.5, for windows users below windows 10 now it requires KB2999226 installed on their machines.
For XP SP3/Vista Users, please use 32-bit releases and install Visual C++ 2010 x86 Runtime.
Caddy HTTPS protocol support
Caddy's HTTPS protocol is compatible from release 1.10.3 and 1.9.7.
Tcmalloc support enabled for both windows and linux
Tcmalloc support is added for windows since 1.10.4 (excluding arm64/aarch64 platform) and for linux.
Fix support for macOS 15
macOS now requires entitlement of local network for dns resolving. So we switch back to system dns resolver instead of c-ares.
This change is landed at 1.13.1 and 1.12.4.
Android vpn service support
Android releases from 1.6.3 are signed and have been updated to add VpnService support.
iOS packet tunnel support
iOS releases from 1.5.22 have fixed memory pressure crashes and have been updated to add Packet tunnel support. You need a PC (with iTune) or a mac (through Finder) to install ipa directly or wait for app store release.
Alternative way: Join TesfFlight. For Apple Silicon macOS Users such as M1/M2/M3, you can also install packet tunnel version via TestFlight.
What's Changed
- Bump chromium 130 dependents by @Chilledheart in #1090
- use jsoncpp for official build by @Chilledheart in #1091
- net: apply tcp congestion only between cli and server by @Chilledheart in #1092
- cmake: use static build for musl by @Chilledheart in #1093
- bump benchmark to version 1.9.0 by @Chilledheart in #1094
- bump protobuf to match grpc default by @Chilledheart in #1095
- c-ares: backport some patches by @Chilledheart in #1096
- gtk4: fix typo in icon name by @Chilledheart in #1097
- net: cleanup pending listen ctx on stop by @Chilledheart in #1098
- build: enforce jsoncpp usage by @Chilledheart in #1099
- flatpak: use qt 6.6 by @Chilledheart in #1101
- win32: handle escape in about dialog by @Chilledheart in #1102
- mac: produce dSYM files correctly by @Chilledheart in #1104
- net: optimize yield algorithm by @Chilledheart in #1105
- android: upgrade to gradle 8.5 by @Chilledheart in #1107
- android: support 16k page size by @Chilledheart in #1109
Full Changelog: 1.13.2...1.14.2
M130 Release 1
Contribute your translation (i18n)
Please submit translations via Transifex: https://app.transifex.com/yetanothershadowsocket/yetanothershadowsocket
Available Project:
- Qt5/Qt6
- Gtk3
- Gtk4
- Android
- iOS
- macOS
- Win32 (Incompatible with RC format)
Post Quantum Kyber Support Be Enabled by Default
Starting with release M131 aka 1.15.0 (#1089), Post Quantum Kyber Support is enabled on all of supported Platforms. You can disable it via Options Dialog(non-iOS)/Settings(iOS) manually.
Windows Edit Control Limitation Fix
Input fields are limited in characters, depending on character width on Windows.
This issue is fixed in 1.12.5 and 1.13.2.
TCP Congestion Algorithm (Linux only)
You can change tcp connection algorithm with connection to server from version 1.13.1 in Option Dialog.
If not found, modprobe tcp_congestion kernel module before use it.
-
list all supported built congestion algorithms:
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4
-
add it to
/etc/modules-load.d/bbr.conf
to ensure the tcp congestion algorithm kernel module loaded prior to yass.
Flathub Support (Require Internet Access)
Flathub Support is added from version 1.12.3. You can install it via below command from flatpak (sandboxed):
flatpak install --user io.github.chilledheart.yass
Flatpak Support
Flatpak Support (Kde platform) is added from version 1.12.2. You can now download the flatpak (unsandboxed) and enjoy from:
flatpak install --user yass-x86_64-<version>.flatpak
Dropped CentOS 7 Support (EOL)
Last latest CentOS 7 binaries are still available at M127 Release 3 and M126 Release 7
KDE (Qt) support
From version 1.10.5, KDE (Qt6) support is added in source, you now can compile it with -DGUI=on -DUSE_QT6=on
cmake option.
From version 1.11.2, KDE (Qt5) support is added in source, you now can compile it with -DGUI=on -DUSE_QT5=on
cmake option.
From version 1.11.1, Qt6 and GTK4 prebuilt deb and rpm packages are also provided.
From version 1.11.2, Qt5 prebuilt deb and rpm packages are also provided.
Post Quantum Kyber Support
Starting with release 1.9.5 and 1.8.7, Post Quantum Kyber Support is added on all of supported Platforms. You can enable it via Options Dialog(non-iOS)/Settings(iOS) manually.
Windows binary now switched to ucrt runtime
From version 1.10.5, for windows users below windows 10 now it requires KB2999226 installed on their machines.
For XP SP3/Vista Users, please use 32-bit releases and install Visual C++ 2010 x86 Runtime.
Caddy HTTPS protocol support
Caddy's HTTPS protocol is compatible from release 1.10.3 and 1.9.7.
Tcmalloc support enabled for both windows and linux
Tcmalloc support is added for windows since 1.10.4 (excluding arm64/aarch64 platform) and for linux.
Experimental SOCKS cipher Support
Experimental socks4/socks4a/socks5/socks5h cipher support is added for both of CLI and GUI.
Experimental DoH (DNS over HTTPS) and DoT (DNS over TLS) Support
Experimental DoH and DoT support is added for both of CLI and GUI.
Fix disk space occupation issue
Starting with release 1.9.2, it will no longer keep log file and will not occupy extra disk space for Android/iOS/HarmonyOS client.
Fix a regression bug in 1.7.4
Fix a regression bug causing windows client to lose its port settings in configuration.
Status of NaïveProxy Protocol Support
It refers to http2 cipher as NaïveProxy-compatible protocol support.
Please refer to this wiki page for more information about the support matrix.
Fix support for macOS 15
macOS now requires entitlement of local network for dns resolving. So we switch back to system dns resolver instead of c-ares.
This change is landed at 1.13.1 and 1.12.4.
Android vpn service support
Android releases from 1.6.3 are signed and have been updated to add VpnService support.
iOS packet tunnel support
iOS releases from 1.5.22 have fixed memory pressure crashes and have been updated to add Packet tunnel support. You need a PC (with iTune) or a mac (through Finder) to install ipa directly or wait for app store release.
Alternative way: Join TesfFlight. For Apple Silicon macOS Users such as M1/M2/M3, you can also install packet tunnel version via TestFlight.
Notarized macOS releases
macOS releases from 1.5.19 are notarized. Please note the dmg suffixed with -unsigned
is not.
Supplementary support for missing ISRG (Let's Encrypt Root) on some Windows 11 Installation and Android prior to 7.1.1
Releases from 1.5.25 and 1.6.4 fixes an issue that ISRG Root 1 and ISRG Root 2 might be missing in some machines and that causes troubles.
What's Changed
- Bump chromium 130 dependents by @Chilledheart in #1090
- use jsoncpp for official build by @Chilledheart in #1091
- net: apply tcp congestion only between cli and server by @Chilledheart in #1092
- cmake: use static build for musl by @Chilledheart in #1093
- bump benchmark to version 1.9.0 by @Chilledheart in #1094
- bump protobuf to match grpc default by @Chilledheart in #1095
- c-ares: backport some patches by @Chilledheart in #1096
- gtk4: fix typo in icon name by @Chilledheart in #1097
- net: cleanup pending listen ctx on stop by @Chilledheart in #1098
- build: enforce jsoncpp usage by @Chilledheart in #1099
- flatpak: use qt 6.6 by @Chilledheart in #1101
- win32: handle escape in about dialog by @Chilledheart in #1102
- mac: produce dSYM files correctly by @Chilledheart in #1104
- net: optimize yield algorithm by @Chilledheart in #1105
Full Changelog: 1.13.2...1.14.1
M129 Release 3
Contribute your translation (i18n)
Please submit translations via Transifex: https://app.transifex.com/yetanothershadowsocket/yetanothershadowsocket
Available Project:
- Qt5/Qt6
- Gtk3
- Gtk4
- Android
- iOS
- macOS
- Win32
Post Quantum Kyber Support Be Enabled by Default
Starting with release M131 aka 1.15.0 (#1089), Post Quantum Kyber Support is enabled on all of supported Platforms. You can disable it via Options Dialog(non-iOS)/Settings(iOS) manually.
Windows Edit Control Limitation Fix
Input fields are limited in characters, depending on character width on Windows.
This issue is fixed in 1.12.5 and 1.13.2.
TCP Congestion Algorithm (Linux only)
You can change tcp connection algorithm with connection to server from version 1.13.1 in Option Dialog.
If not found, modprobe tcp_congestion kernel module before use it.
-
list all supported built congestion algorithms:
ls -la /lib/modules/$(uname -r)/kernel/net/ipv4
-
add it to dracut configuration or somewhere to ensure the tcp congestion algorithm kernel module loaded prior to yass.
Flathub Support (Require Internet Access)
Flathub Support is added from version 1.12.3. You can install it via below command from flatpak (sandboxed):
flatpak install --user io.github.chilledheart.yass
Flatpak Support
Flatpak Support (Kde platform) is added from version 1.12.2. You can now download the flatpak (unsandboxed) and enjoy from:
flatpak install --user yass-x86_64-<version>.flatpak
Dropped CentOS 7 Support (EOL)
Last latest CentOS 7 binaries are still available at M127 Release 3 and M126 Release 7
KDE (Qt) support
From version 1.10.5, KDE (Qt6) support is added in source, you now can compile it with -DGUI=on -DUSE_QT6=on
cmake option.
From version 1.11.2, KDE (Qt5) support is added in source, you now can compile it with -DGUI=on -DUSE_QT5=on
cmake option.
From version 1.11.1, Qt6 and GTK4 prebuilt deb and rpm packages are also provided.
From version 1.11.2, Qt5 prebuilt deb and rpm packages are also provided.
Post Quantum Kyber Support
Starting with release 1.9.5 and 1.8.7, Post Quantum Kyber Support is added on all of supported Platforms. You can enable it via Options Dialog(non-iOS)/Settings(iOS) manually.
There is no changes in default options. This option will be enabled by default in the future (likely M128).
Windows binary now switched to ucrt runtime
From version 1.10.5, for windows users below windows 10 now it requires KB2999226 installed on their machines.
For XP SP3/Vista Users, please use 32-bit releases and install Visual C++ 2010 x86 Runtime.
Caddy HTTPS protocol support
Caddy's HTTPS protocol is compatible from release 1.10.3 and 1.9.7.
Tcmalloc support enabled for both windows and linux
Tcmalloc support is added for windows since 1.10.4 (excluding arm64/aarch64 platform) and for linux.
Experimental SOCKS cipher Support
Experimental socks4/socks4a/socks5/socks5h cipher support is added for both of CLI and GUI.
Experimental DoH (DNS over HTTPS) and DoT (DNS over TLS) Support
Experimental DoH and DoT support is added for both of CLI and GUI.
Fix disk space occupation issue
Starting with release 1.9.2, it will no longer keep log file and will not occupy extra disk space for Android/iOS/HarmonyOS client.
Fix a regression bug in 1.7.4
Fix a regression bug causing windows client to lose its port settings in configuration.
Status of NaïveProxy Protocol Support
It refers to http2 cipher as NaïveProxy-compatible protocol support.
Please refer to this wiki page for more information about the support matrix.
Fix support for macOS 15
macOS now requires entitlement of local network for dns resolving. So we switch back to system dns resolver instead of c-ares.
This change is landed at 1.13.1 and 1.12.4.
Android vpn service support
Android releases from 1.6.3 are signed and have been updated to add VpnService support.
iOS packet tunnel support
iOS releases from 1.5.22 have fixed memory pressure crashes and have been updated to add Packet tunnel support. You need a PC (with iTune) or a mac (through Finder) to install ipa directly or wait for app store release.
Alternative way: Join TesfFlight. For Apple Silicon macOS Users such as M1/M2/M3, you can also install packet tunnel version via TestFlight.
Notarized macOS releases
macOS releases from 1.5.19 are notarized. Please note the dmg suffixed with -unsigned
is not.
Supplementary support for missing ISRG (Let's Encrypt Root) on some Windows 11 Installation and Android prior to 7.1.1
Releases from 1.5.25 and 1.6.4 fixes an issue that ISRG Root 1 and ISRG Root 2 might be missing in some machines and that causes troubles.
What's Changed
- Bump chromium 129 dependents by @Chilledheart in #1063
- mac: add display realtime status (ui) by @Chilledheart in #1066
- flakpak: fix broken autostart feature by @Chilledheart in #1068
- flatpak: add autostart system proxy support by @Chilledheart in #1070
- ui: implement tcp congestion algorithm by @Chilledheart in #1072
- bump nghttp2 to 1.63.0 by @Chilledheart in #1073
- mingw: update clang to 18.1.8 by @Chilledheart in #1074
- mbedtls: bump to 3.6.1 by @Chilledheart in #1075
- mac: disable c-ares custom dns resolver by @Chilledheart in #1078
- i18n: add transifex settings by @Chilledheart in #1080
- rust: bump to 1.80.1 by @Chilledheart in #1082
- rust: bump to 1.81.0 by @Chilledheart in #1083
- tun2proxy: update dependencies by @Chilledheart in #1084
- win32: automatically scrolls text horizontally for edit control by @Chilledheart in #1087
- common: add configuration validation feature by @Chilledheart in #1088
- 3ffeb62 abseil-cpp: silence some false-positive warnings
- f9f8c26 config: add support for jsoncpp
- 5c36b20 net: apply tcp congestion only between cli and server
- 2f797d1 jsoncpp: apply lto build fixup and etc
- 8bb85a7 cmake: use static build for musl
- 502ea58 bump benchmark to version 1.9.0
- 1eb7ebc logging: use GetTickCount64 if possible
- 7b1f02a core: don't use double in monotonic clock
- b712324 c-ares: backport some patches
- 292441d protobuf: fix zlib build
- 53417ca gtk4: fix typo in icon name
- 95da774 net: cleanup pending listen ctx on stop
- 2d7c47e mbedtls: fix searching algorithm
- 344ba88 config: add support for jsoncpp (rest)
- 7ad6e21 build: enforce jsoncpp usage
- 3f9a716 config: remove all dead code
- 32ee17a benchmark: use re2 now
- 61dfa6c mac: stop working if it gets pirated by homebrew
- a89ca03 mac: enhance some util function
- f6c1561 win32: handle escape in about dialog
- 017485c systemd: increase RestartSec to 5s
- 4134025 mac: produce dSYM files correctly
- 0307fac net: fix two typos in yield internal
- 7470e52 benchmark: improve logging with cp connection
- 7093a04 net: optimize yield algorithm
- 66750ef cli: optimize with compiler hint on uploading
- 50ac41c cli: add stats for yield event
- f69422c net: add some assertions
Full Changelog: 1.12.3...1.13.3