-
Notifications
You must be signed in to change notification settings - Fork 0
Home
SubZero is an open-source API for high-performance, low-latency trading applications. Forked from the original Libtrading project, SubZero retains its core strengths while adding modern enhancements and improved extensibility. SubZero provides tools for building trading systems that communicate with exchanges, dark pools, and other trading venues.
- High Performance, Low Latency: SubZero is optimized for HFT (high-frequency trading) environments.
- Protocol Support: Includes FIX, FIX/FAST, ITCH, OUCH, and other proprietary trading protocols.
- C API: Lightweight and efficient C-based API designed for flexibility and performance.
- FIX Dialect Support: Seamlessly work with different variations of the FIX protocol.
- SystemTap/DTrace Probes: Integrates with tools for system-level performance monitoring.
Building on Libtrading’s foundation, SubZero adds:
- A modernized codebase for maintainability and extensibility.
- Cross-platform support, with future Windows support in the roadmap.
- Community-driven development, welcoming contributions and feedback.
SubZero is built to excel in low-latency trading scenarios, as demonstrated by performance benchmarks.
Protocol | RTT (μs) |
---|---|
FAST | 13 |
FIX | 6 |
These benchmarks were obtained by running messaging ping-pong tests on a 4-way Intel Haswell 3.60 GHz CPU running Fedora 21 with Linux 3.19.7-200. Processes were pinned to separate physical cores, and the RTT numbers include time spent in the Linux TCP/IP stack.
To measure FIX engine performance locally, you can replicate the benchmark tests using SubZero’s tools:
- Start a FIX server:
Output:./tools/fix/fix_server -m 1 -p 7070
Server is listening to port 7070...
- Run the FIX client latency tester:
Output:./tools/fix/fix_client -n 100000 -m order -p 7070 -h localhost
Client Logon OK Messages sent: 100000 Round-trip time: min/avg/max = 15.0/16.8/129.0 μs Client Logout OK
This example demonstrates SubZero's ability to handle high message volumes with exceptional performance and minimal latency.
- Clone the repository:
git clone https://github.com/simondevenish/SubZero.git
- Follow the Installation Guide.
- Dive into the Getting Started guide to explore SubZero’s features.
- Quickstart: Learn how to start using SubZero effectively.
- Protocol Coverage: Explore supported trading protocols.
- Exchange Coverage: List of supported exchanges and venues.
- Performance: Detailed benchmarks and system tuning tips.
SubZero welcomes contributions from the community. Whether it’s fixing bugs, improving documentation, or adding new features, your input is invaluable.
- Code Contributions: Follow the Contributing Guide.
- Issues: Report bugs or suggest improvements on the Issues page.
- Discussions: Join the conversation in SubZero Discussions.
SubZero is distributed under the permissive 2-clause BSD License. This allows both commercial and non-commercial use with proper attribution.