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)

MIT license

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_error for error handling
  • brk_logger for retry logging
  • brk_types for Date, Height, Timestamp, OHLCCents

Dependencies

~32–47MB
~677K SLoC