Expand description
Β§Deribit FIX Framework
Version: 0.2.0 | Status: Production Ready | Repository: https://github.com/joaquinbejar/deribit-fix
A comprehensive, production-ready FIX protocol client framework for Deribit cryptocurrency exchange. This library provides a complete, type-safe, and async foundation for building sophisticated trading applications that connect to Deribit using the FIX 4.4 protocol with custom extensions.
Β§ποΈ Project Status
Current Version: 0.2.0 - Feature Complete & Production Ready
This release represents a complete implementation of the Deribit FIX specification with:
- β Full FIX 4.4 protocol support with Deribit extensions
- β Complete trading operations (orders, positions, mass operations)
- β Real-time market data streaming and snapshots
- β Comprehensive session management and error handling
- β Production-grade connection management with SSL support
- β Extensive test suite with 90%+ coverage
- β Rich examples and documentation
Β§π Quick Start
Add to your Cargo.toml:
[dependencies]
deribit-fix = "0.2.0"Basic usage:
use deribit_fix::prelude::*;
#[tokio::main]
async fn main() -> Result<()> {
let config = DeribitFixConfig::default()
.with_credentials("your_key".to_string(), "your_secret".to_string())
.with_heartbeat_interval(30);
let mut client = DeribitFixClient::new(config).await?;
client.connect().await?;
// Start trading!
let positions = client.get_positions().await?;
println!("Current positions: {}", positions.len());
client.disconnect().await?;
Ok(())
}Β§π Supported Environments
| Environment | Raw TCP | SSL |
|---|---|---|
| Production | www.deribit.com:9880 | www.deribit.com:9883 |
| Test | test.deribit.com:9881 | test.deribit.com:9883 |
Β§π― Core Features
Β§π‘ Session Management
- Logon/Logout (A/5): Secure authentication with SHA256 + nonce
- Heartbeat (0): Configurable keep-alive mechanism
- Test Request (1): Connection health monitoring
- Resend Request (2): Message recovery and gap filling
- Sequence Reset (4): Sequence number management
- Reject (3): Comprehensive error handling with detailed codes
Β§π Trading Operations
- Order Management:
- New Order Single (D) - Place orders with full parameter support
- Order Cancel Request (F) - Cancel individual orders
- Order Cancel/Replace Request (G) - Modify existing orders
- Mass Operations:
- Order Mass Cancel Request (q) - Cancel multiple orders
- Order Mass Status Request (AF) - Bulk order status queries
- Execution Reports: Real-time order status updates and fill notifications
- Position Management:
- Request For Positions (AN) - Query current positions
- Position Report (AP) - Real-time position updates
Β§π Market Data
- Real-time Streaming:
- Market Data Request (V) - Subscribe to live data feeds
- Market Data Snapshot/Full Refresh (W) - Complete market snapshots
- Market Data Incremental Refresh (X) - Efficient incremental updates
- Security Information:
- Security List Request (x) - Available instruments
- Security Definition Request (c) - Detailed instrument specifications
- Security Status Request (e) / Security Status (f) - Instrument status updates
Β§πΌ Advanced Trading Features
- Market Making:
- Mass Quote (i) - Bulk quote submission
- Quote Request (R) - Request for quotes
- Quote Cancel (Z) - Quote cancellation
- RFQ (Request for Quote) System:
- RFQ Request (AH) - Submit RFQ requests
- Quote Status Report (AI) - Quote status updates
- Risk Management:
- MMProtection Limits (MM) - Market maker protection
- MMProtection Reset (MZ) - Reset protection limits
- Trade Reporting:
- TradeCaptureReportRequest (AD) - Request trade reports
- TradeCaptureReport (AE) - Trade execution reports
Β§π Security & Authentication
- SHA256 Authentication: Secure credential-based authentication
- Application Registration: Support for registered apps with DeribitAppSig
- Cancel on Disconnect: Automatic order cancellation on connection loss
- User Management: User Request (BE) / User Response (BF)
- SSL/TLS Support: Encrypted connections for production environments
Β§β‘ Technical Architecture
Β§ποΈ Built on Modern Rust
- Rust 2024 Edition: Latest language features and performance
- Async/Await: Full async support with Tokio runtime
- Type Safety: Zero-cost abstractions with compile-time guarantees
- Memory Safety: No segfaults, buffer overflows, or memory leaks
Β§π Connection Management
- Automatic Reconnection: Configurable backoff strategies
- Connection Pooling: Efficient resource utilization
- Timeout Handling: Robust timeout management
- SSL/TLS Support: Production-grade encrypted connections
Β§π― Message Processing
- FIX Protocol Compliance: Full FIX 4.4 with Deribit extensions
- Message Validation: Comprehensive parsing and validation
- Sequence Management: Automatic sequence number handling
- Gap Detection: Automatic message gap detection and recovery
Β§π‘οΈ Error Handling
- Detailed Error Types: Comprehensive error classification
- Context Preservation: Rich error context for debugging
- Recovery Strategies: Automatic recovery from transient errors
- Logging Integration: Structured logging with tracing support
Β§π Examples & Documentation
The framework includes comprehensive examples covering all major use cases:
Β§π§ Basic Examples
- Basic Client (
examples/basic/): Simple client setup and connection - Login Test (
examples/session/login_test.rs): Authentication examples - Heartbeat (
examples/session/heartbeat_example.rs): Keep-alive handling
Β§π Trading Examples
- Order Management (
examples/order_management/): Complete order lifecycle - Position Management (
examples/position_management/): Position tracking - Market Data (
examples/market_data/): Real-time data streaming
Β§π¨ Advanced Examples
- Error Handling (
examples/error_handling/): Comprehensive error scenarios - Session Management (
examples/session/session_management.rs): Advanced session handling - Test Requests (
examples/session/test_request_example.rs): Connection monitoring - Resend Requests (
examples/session/resend_request_example.rs): Message recovery
Β§π§ͺ Testing & Quality
Β§π¬ Comprehensive Test Suite
- Unit Tests: 100+ unit tests covering all modules
- Integration Tests: End-to-end scenarios with mock servers
- Coverage: 90%+ code coverage with detailed reports
- Continuous Integration: Automated testing on multiple platforms
Β§π Quality Assurance
- Clippy Linting: Strict code quality enforcement
- Rustfmt: Consistent code formatting
- Documentation: 100% public API documentation
- Benchmarks: Performance regression testing
Β§π¦ Installation & Setup
Β§Prerequisites
- Rust 1.75+ (specified in
rust-toolchain.toml) - Tokio async runtime
- Valid Deribit API credentials
Β§Build Commands
# Standard build
cargo build
# Release build (recommended for production)
cargo build --release
# Run tests
cargo test
# Run examples
cargo run --example basic_clientΒ§π Performance
- Low Latency: Optimized for high-frequency trading
- Memory Efficient: Zero-copy message parsing where possible
- Async I/O: Non-blocking network operations
- Connection Pooling: Efficient resource utilization
Β§π οΈ Development Tools
The project includes comprehensive development tooling:
# Format code
make fmt
# Lint code
make lint
# Run tests
make test
# Generate documentation
make doc
# Run benchmarks
make benchΒ§β οΈ Important Notes
- Testing Required: Always test with demo account before live trading
- Risk Management: Implement proper risk controls in your application
- Rate Limits: Respect Deribitβs API rate limits
- Error Handling: Implement robust error handling for production use
Β§π License & Disclaimer
Licensed under MIT License. This software is not officially associated with Deribit. Trading financial instruments carries risk - use at your own discretion.
Re-exportsΒ§
pub use client::DeribitFixClient;pub use config::DeribitFixConfig;pub use error::DeribitFixError;pub use error::Result;pub use message::admin::*;pub use model::*;
ModulesΒ§
- client
- FIX client module
- config
- Configuration module for the Deribit FIX client
- connection
- Connection management module
- constants
- FIX protocol constants
- error
- Error types for the Deribit FIX framework
- message
- FIX message parsing and construction
- model
- FIX message models and data structures
- prelude
- Re-export commonly used types for convenience
- session
- FIX session management module