How sideswap-io/sideswap_rust works
SideSwap Rust is a Liquid-focused client, protocol, and service toolkit: users construct and manage wallets, trade or swap assets, and run self-hosted market makers or an asset manager. The client worker mediates UI requests and dispatches wallet, market, and network work; market operations use the shared API model and AMP connectivity, while wallet tasks include transaction creation, signing, and optional Payjoin. Separate service branches implement manager and dealer processes, and Jade provides a hardware-wallet integration. Unsampled subsystems are retained where the README or source index establishes their role; links without visible call evidence are omitted.
Main entry points: src/worker.rs Client worker · market_worker.rs Market worker · src/worker.rs Manager worker · main.rs Asset manager
Components 23
Client runtime
- Client interface
sideswap_client/src/ffi.rs - Client worker
sideswap_client/src/worker.rs - Market worker
sideswap_client/src/worker/market_worker.rs
Market protocol
- AMP client
sideswap_amp/src/lib.rs - WAMP messages
sideswap_amp/src/wamp/message.rs - SideSwap API
sideswap_api/src/lib.rs - Market models
sideswap_api/src/mkt.rs
Wallet services
- GDK sessions
sideswap_client/src/gdk_ses_rust.rs - Wallet Connect
sideswap_client/src/worker/wallet_connect.rs - LWK wallet
sideswap_lwk/src/lib.rs - PayJoin
sideswap_payjoin/src/lib.rs - Shared value types
sideswap_types/src/lib.rs
Self-hosted services
- Asset manager
sideswap_manager/src/main.rs - Manager worker
sideswap_manager/src/worker.rs - Manager database
sideswap_manager/src/db.rs - Dealer markets
sideswap_dealer/src/market.rs - Market controller
sideswap_dealer/src/market/controller.rs - Bitfinex dealer
sideswap_dealer_bitfinex/src/main.rs - Exchange balancing
sideswap_dealer_bitfinex/src/balancing.rs
External integrations
- Jade hardware
sideswap_jade/src/jade_mng.rs - Exchange websocket
sideswap_dealer_bitfinex/src/bfx_ws_api.rs - PIN cryptography
gdk_rust/gdk_pin_client/src/crypto.rs
Other components
- Application user
Connections 19
- Application user → Client interface: calls
- Client interface → Client worker: dispatches
sideswap_client/src/worker.rs - Client worker → Market worker: delegates to
sideswap_client/src/worker.rs - Client worker → GDK sessions: uses
sideswap_client/src/worker.rs - Client worker → Wallet Connect: uses
sideswap_client/src/worker.rs - Client worker → PayJoin: creates PayJoin
sideswap_client/src/worker.rs - Market worker → SideSwap API: sends requests
- Market worker → Market models: uses models
sideswap_client/src/worker/market_worker.rs - AMP client → WAMP messages: uses messages
sideswap_amp/src/lib.rs - Client worker → AMP client: connects through
- Client worker → Jade hardware: signs with
sideswap_client/src/worker.rs - Asset manager → Manager worker: runs
sideswap_manager/src/main.rs - Asset manager → Manager database: opens
sideswap_manager/src/main.rs - Manager worker → LWK wallet: commands wallet
sideswap_manager/src/worker.rs - Manager worker → Manager database: persists state
- Dealer markets → Market controller: uses controller
sideswap_dealer/src/market/controller.rs - Bitfinex dealer → Exchange balancing: coordinates
sideswap_dealer_bitfinex/src/main.rs - Bitfinex dealer → Exchange websocket: handles exchange events
sideswap_dealer_bitfinex/src/main.rs - PIN cryptography → Shared value types: encodes shared values