Skip to main content

Crate shoes

Crate shoes 

Source
Expand description

shoes - A high-performance multi-protocol proxy server.

This library provides the core functionality for shoes, enabling it to be embedded in mobile applications (Android/iOS) as a VPN backend.

§Features

  • Multi-protocol support: VLESS, VMess, Trojan, Shadowsocks, and more
  • TUN device support: Virtual network interface for VPN mode
  • Proxy chaining: Connect through multiple proxies
  • Flexible routing: Rule-based traffic routing

§Mobile Integration

For Android, use the FFI module:

// Load native library
System.loadLibrary("shoes")

// Initialize
ShoesNative.init("info")

// Start VPN with TUN fd from VpnService
val handle = ShoesNative.startTun(tunFd, configYaml, protectCallback)

// Stop VPN
ShoesNative.stop(handle)

For iOS, use the C FFI module from Swift:

// Initialize
shoes_init("info")

// Start VPN with packet tunnel fd
let handle = shoes_start(configYaml, protectCallback)

// Stop VPN
shoes_stop(handle)

§Platform Support

  • Linux (x86_64, aarch64)
  • Android (arm64-v8a, armeabi-v7a, x86_64)
  • iOS (arm64)

Modules§

config
Configuration types. Configuration module for the proxy server.
dns
DNS resolver module with configurable DNS servers.
logging
Multi-output logging infrastructure. Multi-output logging infrastructure.
resolver
resources
tun
TUN device support for VPN mode. TUN device support for shoes.