- iOS 13.0+ / macOS 10.15+ / watchOS 6.0+ / tvOS 13.0+
- Swift 5.9+
- Xcode 15.0+
在 Package.swift 中添加依赖:
dependencies: [
.package(url: "https://github.com/RayanceKing/PostProxyCore.git", from: "0.1.0")
]或在 Xcode 中:
- File → Add Package Dependencies
- 输入仓库 URL: https://github.com/RayanceKing/PostProxyCore.git
- 选择版本并添加到项目
PostProxyCore 是一个基于 Swift 的高性能 HTTP/HTTPS 代理核心库,支持 MITM(中间人)模式、请求转发、证书管理、历史记录存储等功能。适用于桌面端、移动端、AI 自动化和 UI 软件集成。
- ProxyCore:代理服务器核心,支持 MITM、会话管理、过滤等。
- HTTPClient:异步 HTTP 请求发送与响应处理。
- CoreSecurity:证书生成、管理与根证书信任。
- Protocol:统一的 HTTP 请求/响应/模板/历史等数据结构。
- Storage:历史记录存储接口与内存实现。
ProxyServer:主代理服务类init(configuration: ProxyServerConfiguration, ...)func start() async throws启动代理服务func stop() async throws停止代理服务
ProxyServerConfiguration:代理配置(host, port, mode, TLS 验证)ProxyMode:.passthrough / .mitm
MITMOrchestrating协议:自定义 MITM 行为DefaultMITMOrchestrator:默认实现,自动生成证书
RequestSending协议:func send(_ request: HTTPRequest) async throws -> HTTPResponse
NIORequestSender:基于 SwiftNIO 的实现
CertificateManaging协议、MITMCertificateProviding协议InMemoryCertificateManager:内存证书管理RootTrustManaging协议、MacOSRootTrustManager:根证书信任
HistoryStore协议:func save(_ record: HistoryRecord) asyncfunc list(limit: Int) async -> [HistoryRecord]func clear() async
InMemoryHistoryStore:内存实现
HTTPRequest、HTTPResponse、RequestTemplate、HistoryRecord、ProxySession等
- 通过 SwiftPM 引入本库
- 创建
ProxyServerConfiguration,初始化ProxyServer - 调用
start()/stop()控制代理 - 通过
RequestSending发送 HTTP 请求 - 通过
HistoryStore获取历史记录
import PostProxyCore
// 1. 启动代理服务器
let config = ProxyServerConfiguration(host: "127.0.0.1", port: 9090, mode: .mitm)
let proxy = ProxyServer(configuration: config)
try await proxy.start()
// 2. 发送 HTTP 请求
let sender = NIORequestSender()
let request = HTTPRequest(name: "Test", url: URL(string: "https://example.com")!, method: .get, headers: [:], body: .none)
let response = try await sender.send(request)
// 3. 查询历史记录
let store = InMemoryHistoryStore()
let records = await store.list(limit: 10)
// 4. 停止代理
try await proxy.stop()- Swift 5.7+
- SwiftNIO, AsyncHTTPClient, NIOSSL, X509
AGNU