This directory contains detailed technical specifications for cryptofeed features and enhancements.
Revolutionary proxy support with zero code changes required for existing exchanges and user applications.
| Document | Purpose | Audience |
|---|---|---|
| Proxy System Overview | 🌟 START HERE - Complete system overview and quick start guide | All users |
| Universal Proxy Injection | Comprehensive technical architecture and implementation details | Developers, DevOps |
| CCXT Proxy Integration | CCXT-specific proxy injection specifications | CCXT users, Exchange integrators |
| Configuration Patterns | Real-world configuration examples and patterns | Operations, System administrators |
Zero Code Changes Required - Add proxy support to your existing setup:
# Add this to your existing config.yaml
proxy:
enabled: true
default:
rest: socks5://your-proxy:1080
websocket: socks5://your-proxy:1081
# Your existing exchanges - NO CHANGES NEEDED
exchanges:
binance:
symbols: ["BTC-USDT"]
channels: [TRADES]Your Python code remains identical:
# This code works with or without proxies - NO CHANGES NEEDED
feed = Binance(symbols=['BTC-USDT'], channels=[TRADES])
feed.start() # Now automatically uses configured proxy!- ✅ 100% Backward Compatible: All existing code continues to work
- ✅ Universal Coverage: HTTP, WebSocket, CCXT clients
- ✅ Configuration-Driven: Proxy behavior controlled entirely by YAML
- ✅ Enterprise-Ready: External proxy managers, regional compliance
- ✅ High Performance: <5% overhead, connection pooling, failover
Specifications for integrating exchanges via the CCXT library.
| Document | Purpose | Status |
|---|---|---|
| CCXT Generic Feed | Reusable CCXT adapter architecture | ✅ Complete |
| Backpack CCXT Integration | Backpack exchange implementation example | ✅ Complete |
- 🔄 Rapid Exchange Support: Add new exchanges via CCXT with minimal code
- 🛠️ Consistent API: Unified interface across all CCXT-supported exchanges
- 🔒 Proxy Support: Full transparent proxy injection for regional compliance
- 📊 Standard Types: Automatic conversion to cryptofeed data types
- Proxy System Overview - Understand the transparent proxy system
- Configuration Patterns - See real-world configuration examples
- Universal Proxy Injection - Understand the technical architecture
- CCXT Generic Feed - Learn about CCXT integration patterns
- CCXT Proxy Integration - CCXT-specific proxy implementation details
- Configuration Patterns - Production configuration examples
- Proxy System Overview - Enterprise features and monitoring
- Universal Proxy Injection - Security and compliance features
All specifications follow cryptofeed's engineering principles:
- Single Responsibility: Each component has a clear, focused purpose
- Open/Closed: Extensions via configuration and plugins, no code modifications
- Liskov Substitution: Proxy-enabled components work identically to non-proxy
- Interface Segregation: Minimal, focused interfaces
- Dependency Inversion: Depend on abstractions, not concrete implementations
- NO MOCKS: Use real implementations with test fixtures
- NO LEGACY: Modern async patterns only
- NO COMPATIBILITY: Breaking changes acceptable for cleaner architecture
- START SMALL: MVP implementations, expand based on actual needs
- CONSISTENT NAMING: Clear, descriptive names without prefixes
- TDD: Test-driven development with comprehensive test coverage
- SPECS DRIVEN: Implementation follows detailed specifications
- CONFIGURATION OVER CODE: Behavior controlled via configuration, not code changes
- Transparent Proxy Injection: Complete architecture and design
- CCXT Integration: Generic adapter and Backpack implementation
- Configuration Patterns: Comprehensive real-world examples
- Engineering Principles: Documented in CLAUDE.md
- Proxy Infrastructure: Core ProxyResolver and connection mixins
- External Manager Plugins: Kubernetes and enterprise integrations
- Advanced Monitoring: Performance metrics and health dashboards
- Machine Learning: AI-powered proxy selection optimization
- Advanced Security: Certificate pinning and enhanced authentication
- Multi-Cloud: Cloud-specific proxy integrations (AWS, GCP, Azure)
When updating specifications:
- Follow TDD principles: Write tests that demonstrate the specification
- Maintain backward compatibility: Existing code should continue to work
- Document configuration: Provide comprehensive configuration examples
- Consider enterprise needs: Include security, monitoring, and compliance features
- Technical accuracy review
- Implementation feasibility assessment
- Backward compatibility verification
- Documentation completeness check
- Documentation: Start with the appropriate specification document
- Examples: See configuration patterns for real-world usage
- Issues: GitHub issues for questions and bug reports
- Features: GitHub discussions for feature requests
- Proxy Issues: Enable debug logging in proxy configuration
- CCXT Issues: Check CCXT compatibility and version requirements
- Performance: Use monitoring features to identify bottlenecks
- Configuration: Validate YAML syntax and configuration schema
Note: These specifications represent the evolution of cryptofeed toward enterprise-ready, configuration-driven architecture with zero-code proxy support and universal exchange integration via CCXT.