back to home

shadowsocks / ShadowsocksX-NG

Next Generation of ShadowsocksX

32,904 stars
7,856 forks
314 issues
SwiftObjective-CShell

AI Architecture Analysis

This repository is indexed by RepoMind. By analyzing shadowsocks/ShadowsocksX-NG in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.

Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.

Embed this Badge

Showcase RepoMind's analysis directly in your repository's README.

[![Analyzed by RepoMind](https://img.shields.io/badge/Analyzed%20by-RepoMind-4F46E5?style=for-the-badge)](https://repomind-ai.vercel.app/repo/shadowsocks/ShadowsocksX-NG)
Preview:Analyzed by RepoMind

Repository Summary (README)

Preview

ShadowsocksX-NG

Download

Actions Status

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-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.

Requirements

Running

macOS 10.12+

Building

  • Xcode 12.5.1+
  • CocoaPods 1.10.1+

Download

From here

Features

  • ss-local from shadowsocks-libev 3.2.5.
  • Support SIP003 plugins. Embed kcptun, simple-obfs and v2ray-plugin.
  • Could update PAC by download GFW List from GitHub.
  • Share your server profiles by qrcode or url.
  • Import server profile urls from pasteboard.
  • Import server profile by scan QRCode on screen.
  • Custom rules for PAC.
  • Support for AEAD Ciphers
  • HTTP Proxy by privoxy

Difference from original ShadowsocksX

ss-local is run as a background service through launchd, not as an in-app process. So after you quit the app, the ss-local might 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.