Production deployment of Rust in HFT system at Korean financial company
https://www.reddit.com/r/rust/comments/bhtuah/production_deployment_of_rust_in_hft_system_at/
A Korean financial company runs a profitable HFT(High Frequency Trading) system with DMA(Direct Market Access) to KRX(Korea Exchange). We rewrote trading strategies and related code from C++ to Rust, and the system recently got deployed to production.
The project has been up for 16 months, the trading has been up for 10 months, it has been profitable for 9 months, Rust build integration has been set up for 10 months, trading strategy rewrite has been worked for 7 months, the final push took a month. The final push required Rust version beating (already quite optimized) C++ version in latency in all cases, even if it is just a little bit. This was achieved. (Although to be honest, it was actually achieved by switching active development to Rust and putting C++ version in maintenance mode.)
x86_64-pc-windows-msvc target is used with Visual Studio MSBuild based build system for release and x86_64-unknown-linux-gnu target is used with CMake based build system for CI. bindgen and cbindgen are used for C++ FFI. C++17 standard is used, with Visual Studio 2017 and GCC 8. Rust toolchain used is stable channel and immediately updated after the release. Cargo dependencies are locked and updated discretionally. vcpkg is used for C++ package management, both on Windows and Linux. CI was CircleCI 1.0 running on Ubuntu 16.04 LTS, but switched to CircleCI 2.0 with Docker with freedom from dealing with old versions. Deployment is automated by PowerShell Remoting.
Ask me anything, although I can‘t say I will answer anything. If you are interested in work, PM me. This is posted in the hope that it would be useful as a precedent, because we experienced such resistance first hand.