HotFIX is a FIX engine implemented in Rust, focused on buy-side (initiator) workflows. It fully supports FIX 4.4 and the current focus is on expanding support to other FIX versions. Performance is roughly on par with various QuickFIX implementations, with long-term plans to optimise further.
- Network layer including TCP transport with optional TLS support using
rustls - Message encoding and decoding
- Session-layer supporting the core flows, such as logins, resends, etc.
- Built-in message stores
- in-memory
- file-system
- mongodb
- Code-generation for FIX fields from XML specifications
- Web API and CLI for session monitoring and management
- Code-generation for complete FIX messages from XML specification
| Version | Status |
|---|---|
| FIX 4.2 | Should work, but currently untested |
| FIX 4.4 | Fully supported |
| FIX 5.0 | Planned |
Check out the examples to get started.
The two major influences for HotFIX are QuickFIX and FerrumFIX.
QuickFIX implementations in various languages (such as QuickFIX/J) have influenced the design of the transport and session layers. The FIX message logic builds on QuickFIX XMLs for the specification. People who are familiar with QuickFIX will find the API familiar.
The FIX message implementation of HotFIX is a fork of FerrumFIX for things like codegen, parsing the XML specification, defining fields, etc.
If you're on the buy side and working with FIX 4.4, HotFIX should be ready for your use case. If you run into any issues, please file a bug report on GitHub Issues.
Contributions towards larger features outside the current roadmap — for example, extending HotFIX to support acceptor (sell-side) workflows — are very welcome. For these, open an Issue or start a Discussion to coordinate.