It’s hard to maintain the original implementation as there is too much unused code in it.
It also embeds the ss-local source code. It’s crazy to maintain dependencies of ss-local.
So it’s hard to update the ss-local version.
Now I just copied the ss-local from Homebrew. Run ss-local executable as a Launch Agent in the background.
So there is only some source code related to GUI left.
Then I have rewrited the GUI code in Swift.
ShadowsocksX-NG
Download
Next Generation of ShadowsocksX
Why a new implementation?
It’s hard to maintain the original implementation as there is too much unused code in it. It also embeds the
ss-localsource code. It’s crazy to maintain dependencies ofss-local. So it’s hard to update thess-localversion.Now I just copied the
ss-localfrom Homebrew. Runss-localexecutable as a Launch Agent in the background. So there is only some source code related to GUI left. Then I have rewrited the GUI code in Swift.Requirements
Running
macOS 10.12+
Building
Download
From here
Features
ss-localfrom shadowsocks-libev 3.2.5.kcptun,simple-obfsandv2ray-plugin.Difference from original ShadowsocksX
ss-localis run as a background service through launchd, not as an in-app process. So after you quit the app, thess-localmight be still running.Added a manual mode which won’t configure the system proxy settings, so that you could configure your apps to use the SOCKS5 proxy manually.
Contributing
Contributions must be available on a separately named branch based on the latest version of the main branch
develop.ref: GitFlow
License
The project is released under the terms of the GPLv3.