145 releases
Uses new Rust 2024
| 0.3.0-beta.9 | May 8, 2026 |
|---|---|
| 0.3.0-beta.7 | Apr 27, 2026 |
| 0.2.5 | Mar 29, 2026 |
| 0.1.0-alpha.1 | Dec 21, 2025 |
| 0.0.11 | Mar 31, 2025 |
#844 in Magic Beans
Used in 4 crates
(via brk)
650KB
20K
SLoC
brk_fetcher
Bitcoin price data fetcher with multi-source fallback.
What It Enables
Fetch OHLC (Open/High/Low/Close) price data from Binance, Kraken, or BRK's own API. Automatically falls back between sources on failure, with 12-hour retry persistence for transient network issues.
Key Features
- Multi-source fallback: Binance → Kraken → BRK API
- Health tracking: Temporarily disables failing sources
- Two resolution modes: Per-date (daily) or per-block (1-minute interpolated)
- HAR file support: Import Binance 1mn data from browser network captures for historical fills
- Permanent block detection: Stops retrying on DNS/TLS failures
Core API
let mut fetcher = Fetcher::import(Some(&hars_path))?;
// Daily price
let ohlc = fetcher.get_date(Date::new(2024, 4, 20))?;
// Block-level price (uses 1mn data when available)
let ohlc = fetcher.get_height(height, block_timestamp, prev_timestamp)?;
Sources
| Source | Resolution | Lookback | Notes |
|---|---|---|---|
| Binance | 1mn | ~16 hours | Best for recent blocks |
| Kraken | 1mn | ~10 hours | Fallback for recent |
| BRK API | Daily | Full history | Fallback for older data |
HAR Import
For historical 1-minute data beyond API limits, export network requests from Binance's web interface and place the HAR file in the imports directory.
Built On
brk_errorfor error handlingbrk_loggerfor retry loggingbrk_typesforDate,Height,Timestamp,OHLCCents
Dependencies
~32–47MB
~677K SLoC