Databento launches Rust support for its market data APIs

August 17, 2023
Title picture for Databento launches Rust support for its market data APIs

We're thrilled to announce that we've launched our official Rust client library, which you can check out on GitHub here. You can add it to an existing Rust project with cargo add databento. Rust joins the Databento family of client libraries alongside Python and C++.

We chose to support Rust due to its ideal properties for financial trading systems, including manual memory management, predictable performance, easy access to low-level facilities, productive tooling, and a strong community. Given our extensive use of Rust and the firsthand benefits we've experienced, creating a client library was a natural step for us at Databento.

More than half of our core infrastructure is written in Rust, and Rust powers the performance-sensitive part of our Python client via our dbn crate. Additionally, most API calls go through our Rust code paths, and all of our data is passed around using our high-performance messaging format, Databento Binary Encoding, which is also implemented in Rust.

Some key features of our Rust client library include:

We use the same interfaces and data structures for real-time and historical data, enabling you to use the same code for both.

US futures (CME) and equities (Nasdaq) coverage is provided through the same API.

Our Rust client library provides performance comparable to our C++ client while providing increased type and memory safety.

  • Comparable performance to our C++ client library, which achieves historical order book replay at 19 million events per second.
  • Fetch and listen to all symbols on an exchange at once with a single API call.
  • Median 6.1 microseconds between ingress and egress of our infrastructure.

Rust is already supported through our HTTP API and Raw TCP protocol, which are both language-agnostic.

In the coming months, we're releasing US equity options via OPRA and real-time US equities. Stay tuned for additional announcements. In the meantime, check out our Github below.