brk_fetcher

Crates.iobrk_fetcher
lib.rsbrk_fetcher
version0.1.0-beta.0
created_at2025-02-23 23:31:20.578563+00
updated_at2026-01-25 13:21:27.228435+00
descriptionA Bitcoin price fetcher
homepagehttps://bitcoinresearchkit.org
repositoryhttps://github.com/bitcoinresearchkit/brk
max_upload_size
id1566726
size63,721
(nym21)

documentation

README

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
Commit count: 1045

cargo fmt