mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 23:45:18 +00:00
- Replace C Tor (0.4.8.21) with Rust Arti (1.9.0/arti-client 0.38) - 70% smaller binary: 21MB xcframework vs 67MB (6.9MB vs 14MB per slice) - Memory-safe Rust implementation with modern async (tokio) - Same SOCKS5 proxy interface at 127.0.0.1:39050 for drop-in compatibility - FFI wrapper (arti-bitchat crate) with C-compatible exports - Swift TorManager maintains identical public API - Aggressive size optimization: opt-level=z, lto=fat, panic=abort, strip - Supports iOS device, iOS simulator (Apple Silicon), and macOS Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
47 lines
1.1 KiB
Swift
47 lines
1.1 KiB
Swift
// swift-tools-version:5.9
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "Tor", // Keep name "Tor" for drop-in compatibility
|
|
platforms: [
|
|
.iOS(.v16),
|
|
.macOS(.v13),
|
|
],
|
|
products: [
|
|
.library(
|
|
name: "Tor",
|
|
targets: ["Tor"]
|
|
),
|
|
],
|
|
dependencies: [
|
|
.package(path: "../BitLogger"),
|
|
],
|
|
targets: [
|
|
// Main Swift target
|
|
.target(
|
|
name: "Tor",
|
|
dependencies: [
|
|
"arti",
|
|
.product(name: "BitLogger", package: "BitLogger"),
|
|
],
|
|
path: "Sources",
|
|
exclude: ["C"],
|
|
sources: [
|
|
"TorManager.swift",
|
|
"TorURLSession.swift",
|
|
"TorNotifications.swift",
|
|
],
|
|
linkerSettings: [
|
|
.linkedLibrary("resolv"),
|
|
.linkedLibrary("z"),
|
|
.linkedLibrary("sqlite3"),
|
|
]
|
|
),
|
|
// Binary framework containing the Rust static library
|
|
.binaryTarget(
|
|
name: "arti",
|
|
path: "Frameworks/arti.xcframework"
|
|
),
|
|
]
|
|
)
|