Databento chose C++ over Rust for rewriting their market data feed handler despite using Rust successfully elsewhere. The decision centered on three key friction points with Rust's ownership model: buffer reuse patterns conflicting with lifetime tracking, self-referential structs requiring workarounds, and less mature compile-time generics compared to C++ templates. While Rust offers superior safety guarantees and tooling, C++ provided more control over memory layout, better code reuse from existing systems, and greater team expertise for this specific low-latency, high-throughput use case processing 14 million messages per second.

9m read timeFrom databento.com
Post cover image
Table of contents
The contextGoals for the rewriteWhy Rust seemed compellingWhere we fought the Rust compilerThe decisionWhere C++ still shinesLooking forwardThe bottom line

Sort: