A high-performance cryptocurrency price data aggregation system built in Rust.
Bothan is a collection of libraries for querying and interacting with various cryptocurrency price data APIs. It provides a unified interface for accessing real-time and historical cryptocurrency price data from multiple exchanges and data providers.
This project comprises primarily of 6 main components:
bothan-core
- Core functionality and shared typesbothan-lib
- Common utilities and shared codebothan-api
- Main API server implementationbothan-api-proxy
- API proxy for load balancing and cachingbothan-{exchange}
- Exchange-specific implementationsproto
- Protocol buffer definitions
- Unified API: Consistent interface across all supported exchanges
- High Performance: Built with Rust and Tokio for maximum efficiency
- Real-time Data: Support for streaming and websocket connections
- Caching: Built-in caching to minimize API calls
- Load Balancing: Distributed architecture for high availability
- Rate Limiting: Intelligent rate limit management
- Error Handling: Robust error handling and retry mechanisms
Choose one of the following development approaches:
- Rust (latest stable version)
-
Configure the services:
- Copy
bothan-api/server/config.toml.example
tobothan-api/server/config.toml
- Copy
bothan-api-proxy/config.toml.example
tobothan-api-proxy/config.toml
- Update the configuration files with your API keys and settings
- Copy
-
Start the services:
docker-compose up
If you encounter any issues or have questions related to Bothan, we encourage you to open a GitHub issue. This ensures a streamlined process for tracking and resolving problems.
Please use the following link to report your issue: https://github.com/bandprotocol/bothan/issues/new
We welcome contributions from the community! Please read open a Pull Request and follow the checklist in the pull request template.
Copyright © 2024 Informal Systems Inc. and Bothan authors.
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT)
at your option.