DEX Connector
A Rust library for connecting to multiple decentralized exchanges (DEX) with conditional feature support.
Supported DEX Protocols
- Hyperliquid: Native Rust implementation (always available)
- Lighter: Go SDK integration (conditional feature)
- Others: Extensible architecture for additional protocols
Feature Flags
lighter-sdk (default: enabled)
Enables Lighter Go SDK integration with external shared library dependency.
When enabled:
- Full Lighter DEX functionality
- Requires
libsigner.soshared library - Go FFI bindings available
When disabled:
- Lighter functions return runtime errors
- No shared library dependencies
- Reduced binary size
Build Options
Default Build (All Features)
Lightweight Build (No Lighter SDK)
Custom Features
Usage Examples
Creating Connectors
use *;
// Hyperliquid (always available)
let hyperliquid = create_hyperliquid_connector?;
// Lighter (requires lighter-sdk feature)
let lighter = create_lighter_connector?;
Feature-Conditional Code
The lighter-sdk feature enables integration with the Lighter Go shared library for cryptographic operations. When this feature is not available, the connector will return appropriate error messages.
Dependencies
Always Required
- Standard Rust crypto libraries
- HTTP/WebSocket clients
- Serde for JSON handling
Conditional (lighter-sdk feature)
libcfor FFI- External Go shared library (
libsigner.so)
Architecture
dex-connector/
├── src/
│ ├── lib.rs # Public API and traits
│ ├── dex_connector.rs # Core connector trait
│ ├── hyperliquid_connector.rs # Hyperliquid implementation
│ └── lighter_connector.rs # Lighter implementation (conditional)
├── Cargo.toml # Feature flag configuration
└── README.md # This file
Integration Notes
For Library Users
- Use default features for full functionality
- Use
--no-default-featuresfor minimal dependencies - Handle runtime errors gracefully when features are disabled
For Contributors
- Mark Lighter-specific code with
#[cfg(feature = "lighter-sdk")] - Provide meaningful error messages for disabled features
- Keep core functionality independent of optional features
Error Handling
When lighter-sdk feature is disabled, Lighter-related functions return:
Err
This allows applications to handle missing functionality gracefully.