// the find
databento/databento-rs
The official Rust client library for Databento
Official Rust client for Databento, a market data vendor providing historical and real-time tick data for equities, futures, and options. It wraps two distinct protocols: HTTP/S3 for historical data and a custom TCP protocol (Live) for real-time streaming, both surfaced through async Rust with tokio. This is for quant developers and algorithmic traders who want Databento data in a Rust pipeline.
The builder pattern on params (GetRangeParams::builder(), Subscription::builder()) keeps complex API calls readable without stringing together positional arguments. Feature flags for historical/live are a sensible split — you can pull in only what you need and swap TLS backends by toggling reqwest features. The DBN binary format underneath is efficient for high-frequency data; decoding is zero-copy-friendly and the symbol map API (symbol_map_for_date, PitSymbolMap) handles the point-in-time symbol resolution problem that trips up most market data clients. Test fixtures use real .dbn and .dbn.zst files, so decoder correctness is tested against actual binary blobs.
102 stars for an official vendor SDK suggests limited Rust adoption in Databento's user base, which means the library will lag behind the Python SDK in bug fixes and new features — that's already visible in the changelog cadence. Error handling is a single error.rs with what is likely a fat enum; error messages from the live TCP protocol tend to be opaque without digging into the source. There are no reconnection or backpressure primitives in the live client — if the TCP connection drops mid-session, you're writing your own retry loop. The reference data client is barely documented compared to historical/live, and the examples don't cover it at all.