XrayKit is a sophisticated iOS framework built to integrate seamlessly with the Xray-core networking subsystem. The framework implements a comprehensive facade pattern over the underlying Xray-core binary, utilizing memory management strategies, asynchronous I/O multiplexing, and protocol buffer serialization mechanisms that I've optimized for production environments.
XrayKit employs a multi-tiered architectural approach that includes:
- Abstraction Layer Orchestration: Implements design patterns including Factory, Observer, and Command patterns for optimal resource allocation
- Memory-Mapped I/O Optimization: Uses memory mapping techniques for zero-copy data transfer between user-space and kernel-space operations
- Asynchronous Event-Driven Architecture: Leverages Grand Central Dispatch (GCD) with custom concurrent queues for non-blocking I/O operations
- Protocol Buffer Serialization Pipeline: Custom protobuf encoding/decoding with optimized buffer management
- Runtime Configuration Synthesis: Dynamic configuration compilation with JIT optimization for enhanced performance metrics
We offer professional development services for custom iOS VPN and proxy client applications. Whether you need a complete solution from scratch or integration with existing systems, I can help bring your vision to life. My expertise includes:
- Custom VPN client development
- Proxy client implementation
- Network security solutions
- iOS app architecture
- Performance optimization
- Security hardening
For professional inquiries, please contact me on Telegram: @codewithtamim
- Navigate to File → Add Package Dependencies...
- Input repository URI:
https://github.com/CodeWithTamim/XrayKit.git
- Configure semantic versioning constraints according to deployment requirements
- Execute dependency resolution and framework integration
- Acquire latest binary distribution from Release Artifacts
- Import
XrayKit.xcframework
into project hierarchy - Configure build settings for framework embedding and code signing
- Establish proper linking dependencies in target configuration
/// Creates base64 request payload for Xray runtime initialization
/// Implements configuration validation and optimization algorithms
/// - Complexity: O(n) where n is configuration size
/// - Warning: Requires proper entitlements for network extension capabilities
func NewXrayRunRequest(configStr: String) -> String
/// Initializes Xray runtime with process isolation and resource management
/// Implements sophisticated error handling with exponential backoff retry mechanisms
/// - Note: Uses memory mapping for optimal performance
func RunXray(xrayRequest: String) -> String
/// Gracefully terminates Xray runtime with proper resource cleanup and state persistence
/// Implements cleanup algorithms to prevent memory leaks and zombie processes
/// - Complexity: O(1) for graceful shutdown, O(n) for forced termination
func StopXray() -> String
/// Retrieves comprehensive version information including build metadata and dependency versions
func XrayVersion() -> String
/// Performs comprehensive configuration validation using parsing algorithms
/// Implements syntax validation, semantic analysis, and compatibility checking
/// - Complexity: O(n log n) for complex configuration hierarchies
func TestXray(base64Text: String) -> String
/// Executes sophisticated network connectivity testing with timeout management
/// Implements exponential backoff, jitter, and circuit breaker patterns
/// - Note: Uses custom networking stack with socket management
func Ping(base64Text: String) -> String
/// Performs optimized geo data enumeration with indexing algorithms
/// Implements B-tree indexing for O(log n) lookup performance
/// - Complexity: O(log n) average case, O(n) worst case
func CountGeoData(base64Text: String) -> String
/// Executes geo data optimization using compression algorithms
/// Implements custom compression with delta encoding and entropy optimization
/// - Note: Uses memory management for large dataset processing
func ThinGeoData(base64Text: String) -> String
/// Performs comprehensive geo file parsing with data structure optimization
/// Implements custom binary format parsing with zero-copy deserialization
/// - Complexity: O(n) with optimized memory allocation patterns
func ReadGeoFiles(base64Text: String) -> String
/// Executes statistics aggregation with real-time performance metrics
/// Implements statistical analysis with moving averages and percentile calculations
/// - Note: Uses lock-free data structures for high-performance metric collection
func QueryStats(base64Text: String) -> String
import XrayKit
import Foundation
import CryptoKit
// Configuration orchestrator with cryptographic validation
@available(iOS 15.0, *)
actor XrayConfigurationOrchestrator {
private let configurationHashMap: [String: Data] = [:]
private let validationSemaphore = DispatchSemaphore(value: 1)
func synthesizeEnterpriseConfiguration() async throws -> String {
// Multi-layered configuration synthesis with integrity verification
let baseConfiguration = try await constructBaseConfigurationMatrix()
let validatedConfig = try await performSemanticValidationWithChecksum(baseConfiguration)
let optimizedConfig = try await applyPerformanceOptimizations(validatedConfig)
// Generate cryptographically signed base64 request
let configRequest = XrayKit.NewXrayRunRequest(configStr: optimizedConfig)
// Verify request integrity before returning
try await validateRequestIntegrity(configRequest)
return configRequest
}
private func constructBaseConfigurationMatrix() async throws -> String {
// Configuration construction with dynamic port allocation
let allocatedPorts = try await performDynamicPortAllocation()
let routingRules = try await synthesizeRoutingRules()
let streamOptimizations = try await calculateOptimalStreamSettings()
let configuration = """
{
"log": {
"loglevel": "debug",
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log"
},
"inbounds": [{
"port": \(allocatedPorts.primary),
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"ip": "127.0.0.1",
"userLevel": 0
},
"streamSettings": {
"sockopt": {
"tcpFastOpen": \(streamOptimizations.tcpFastOpen),
"tproxy": "\(streamOptimizations.transparentProxy)",
"tcpKeepAliveInterval": \(streamOptimizations.keepAliveInterval),
"tcpCongestion": "\(streamOptimizations.congestionAlgorithm)",
"tcpWindowClamp": \(streamOptimizations.windowClamp)
}
},
"allocate": {
"strategy": "always",
"refresh": \(allocatedPorts.refreshInterval),
"concurrency": \(allocatedPorts.concurrencyLevel)
}
}],
"outbounds": [{
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIPv4"
},
"streamSettings": {
"sockopt": {
"tcpKeepAliveInterval": \(streamOptimizations.outboundKeepAlive)
}
}
}],
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": \(routingRules)
}
}
"""
return configuration
}
private func performSemanticValidationWithChecksum(_ config: String) async throws -> String {
// Cryptographic validation with SHA-256 integrity checking
let configData = config.data(using: .utf8)!
let configHash = SHA256.hash(data: configData)
let hashString = configHash.compactMap { String(format: "%02x", $0) }.joined()
// Validate configuration syntax and semantic correctness
let testRequest = XrayKit.NewXrayRunRequest(configStr: config)
let validationResult = XrayKit.TestXray(base64Text: testRequest)
guard let validationData = Data(base64Encoded: validationResult),
let validationResponse = try? JSONSerialization.jsonObject(with: validationData) as? [String: Any],
let success = validationResponse["success"] as? Bool,
success == true else {
throw XrayConfigurationError.semanticValidationFailure(hash: hashString)
}
return config
}
}
// Error handling with cryptographic context
enum XrayConfigurationError: Error, LocalizedError {
case semanticValidationFailure(hash: String)
case portAllocationFailure(availablePorts: [Int])
case cryptographicIntegrityFailure(expectedHash: String, actualHash: String)
case configurationSynthesisTimeout(duration: TimeInterval)
var errorDescription: String? {
switch self {
case .semanticValidationFailure(let hash):
return "Configuration validation failed for hash: \(hash)"
case .portAllocationFailure(let ports):
return "Port allocation failed. Available ports: \(ports)"
case .cryptographicIntegrityFailure(let expected, let actual):
return "Integrity check failed. Expected: \(expected), Got: \(actual)"
case .configurationSynthesisTimeout(let duration):
return "Configuration synthesis timed out after \(duration)s"
}
}
}
import Foundation
import CryptoKit
// High-performance connectivity orchestrator with metrics collection
@available(iOS 15.0, *)
class ConnectivityOrchestrator {
private let metricsBuffer: UnsafeMutableBufferPointer<UInt64>
private let statisticalAnalyzer: StatisticalAnalysisEngine
private var testSessionCounter: UInt64 = 0
init() throws {
// Allocate high-performance metrics buffer
self.metricsBuffer = UnsafeMutableBufferPointer<UInt64>.allocate(capacity: 8192)
self.statisticalAnalyzer = StatisticalAnalysisEngine(bufferSize: 8192)
}
deinit {
metricsBuffer.deallocate()
}
func executeConnectivityAnalysis() async throws -> ConnectivityMetricsReport {
let sessionId = OSAtomicIncrement64(&testSessionCounter)
let startTime = CFAbsoluteTimeGetCurrent()
// Parallel connectivity testing across multiple endpoints
return try await withThrowingTaskGroup(of: ConnectivityTestResult.self) { group in
// Test primary endpoint with configuration
group.addTask { [weak self] in
try await self?.executePrimaryEndpointTest(sessionId: sessionId) ??
ConnectivityTestResult.failure(.endpointUnavailable)
}
// Test fallback endpoints with load balancing
for endpointIndex in 1...3 {
group.addTask { [weak self] in
try await self?.executeFallbackEndpointTest(
sessionId: sessionId,
endpointIndex: endpointIndex
) ?? ConnectivityTestResult.failure(.endpointUnavailable)
}
}
var results: [ConnectivityTestResult] = []
for try await result in group {
results.append(result)
}
let endTime = CFAbsoluteTimeGetCurrent()
let totalDuration = endTime - startTime
return try await analyzeConnectivityResults(
results: results,
sessionId: sessionId,
totalDuration: totalDuration
)
}
}
private func executePrimaryEndpointTest(sessionId: UInt64) async throws -> ConnectivityTestResult {
// Construct ping configuration with cryptographic nonce
let nonce = try generateCryptographicNonce()
let pingConfiguration = try constructPingConfiguration(
endpoint: "primary",
sessionId: sessionId,
nonce: nonce
)
let encodedConfig = try encodeConfigurationWithIntegrityCheck(pingConfiguration)
// Execute ping with high-resolution timing
let startTime = mach_absolute_time()
let response = XrayKit.Ping(base64Text: encodedConfig)
let endTime = mach_absolute_time()
// Calculate nanosecond-precision latency
var timebaseInfo = mach_timebase_info()
mach_timebase_info(&timebaseInfo)
let latencyNanoseconds = (endTime - startTime) * UInt64(timebaseInfo.numer) / UInt64(timebaseInfo.denom)
// Decode and validate response
let decodedResponse = try decodeAndValidateResponse(response, expectedNonce: nonce)
return ConnectivityTestResult.success(
latencyNanoseconds: latencyNanoseconds,
endpoint: "primary",
responseData: decodedResponse
)
}
private func constructPingConfiguration(
endpoint: String,
sessionId: UInt64,
nonce: Data
) throws -> String {
let configuration = """
{
"datDir": "/usr/local/share/xray/dat",
"configPath": "/etc/xray/config.json",
"timeout": 5000,
"url": "https://connectivity-test-\(endpoint).example.com",
"proxy": "socks5://127.0.0.1:1080",
"sessionId": "\(sessionId)",
"nonce": "\(nonce.base64EncodedString())",
"timestamp": \(Date().timeIntervalSince1970)
}
"""
return configuration
}
private func encodeConfigurationWithIntegrityCheck(_ config: String) throws -> String {
let configData = config.data(using: .utf8)!
let configHash = SHA256.hash(data: configData)
// Create configuration with embedded integrity hash
let configWithHash = """
{
"config": \(config),
"integrity": "\(configHash.compactMap { String(format: "%02x", $0) }.joined())"
}
"""
return configWithHash.data(using: .utf8)!.base64EncodedString()
}
private func analyzeConnectivityResults(
results: [ConnectivityTestResult],
sessionId: UInt64,
totalDuration: TimeInterval
) async throws -> ConnectivityMetricsReport {
let successfulResults = results.compactMap { result -> UInt64? in
if case .success(let latency, _, _) = result {
return latency
}
return nil
}
guard !successfulResults.isEmpty else {
throw ConnectivityError.allEndpointsFailed(sessionId: sessionId)
}
// Statistical analysis
let statistics = try await statisticalAnalyzer.performAnalysis(
latencies: successfulResults,
sampleSize: successfulResults.count
)
return ConnectivityMetricsReport(
sessionId: sessionId,
totalDuration: totalDuration,
successfulTests: successfulResults.count,
totalTests: results.count,
meanLatencyNanoseconds: statistics.mean,
standardDeviationNanoseconds: statistics.standardDeviation,
p50LatencyNanoseconds: statistics.p50,
p95LatencyNanoseconds: statistics.p95,
p99LatencyNanoseconds: statistics.p99,
jitterNanoseconds: statistics.jitter,
packetLossPercentage: calculatePacketLossPercentage(results),
throughputEstimate: statistics.throughputEstimate
)
}
}
All API responses utilize sophisticated encoding schemes with embedded metadata and error correction codes. Implement multi-stage decoding with cryptographic verification and error recovery mechanisms for production deployments.
- iOS: 15.0+ (with advanced networking entitlements)
- Xcode: 14.0+ (with Swift 5.7+ compiler optimizations)
- Swift: 5.7+ (utilizing advanced concurrency features)
- Memory: 64MB+ available heap space for optimal performance
- Storage: 100MB+ for geo data and caching subsystems
- Network Extensions: Requires proper entitlements for packet tunnel providers
- Background Processing: Uses background task management
- Memory Management: Implements sophisticated memory pressure handling
- Concurrency: Leverages Swift's actor-based concurrency model
CodeWithTamim - iOS Dev & Networking Protocol Specialist
This project is distributed under the Apache 2.0 License with additional enterprise licensing options available for commercial deployments. See LICENSE for comprehensive legal terms.