mirror of
https://github.com/shadowsocks/ShadowsocksX-NG.git
synced 2026-11-02 08:33:46 +00:00
0cf28c97fe8b5f49c9651d081e9f77ed18bf1d12
配置目录领域核心(spec #21 D3/D5,票 #25): - Domain/ 新增配置目录树:单父、显子序、无环;手动/订阅来源严格分离; 有效启用 = 节点及其全部祖先启用;手动节点携带子树移动与重排; 非空手动组递归删除(返回被删条目供 Keychain 清理);空组持久保留; 非法操作(跨来源、身份复用即共享父、成环、订阅节点结构改动、 订阅服务器直挂根)全部带明确原因拒绝且状态不动。 - 凭据引用:密码/插件参数只在 Keychain 存权威副本,配置树只持 CredentialReference;KeychainCredentialStore 写读一致、覆盖写、幂等删。 - CatalogFileStore:v2/catalog.json 目录 0700/文件 0600,临时文件原子替换; 缺失 → 空目录,损坏/版本未知/结构不一致(悬空、共享父、成环含根外孤环、 不可达)→ 命名明确的 corrupt,结构校验收敛在 ConfigurationCatalog.validated 工厂。 - 测试 43 项覆盖全部验收项;project.yml 增加 Domain/ 源码目录。 - .swiftlint.yml 关闭 trailing_comma(与 .swift-format 尾逗号基线冲突, 触发案例见文件内注释),README/AGENTS.md 同步 Domain/ 与工具说明。
ShadowsocksX-NG
🚧 重新实现进行中 —— 本仓库正在使用现代技术栈重写 ShadowsocksX-NG macOS 客户端。
新工程不再通过 git 子模块在仓库内构建依赖,而是直接复制上游项目发布好的可执行文件,以简化构建流程。
目录结构
.
├── ShadowsocksX-NG2/ # 新工程:现代化重写版本(开发中)
└── Legacy/ # 旧版工程完整源码,仅供参考,不保证可构建
旧版工程的功能说明与使用文档见 Legacy/README.md。
Languages
Swift
95.8%
Python
2.5%
Shell
1.4%
C
0.3%