fixer
Open Source FIX Protocol library implemented in Rust.
Note: This project is still under heavy development.
About
fixer is a FIX Protocol Community implementation for the Rust programming language.
- 100% free and open source
- Supports FIX versions 4.0 - 5.0SP2
- Spec driven run-time message validation
- Spec driven code generation of type-safe FIX messages, fields, and repeating groups
- Support for protocol customizations
- Session state storage options: SQL, MongoDB, On-disk, or In-memory
- Logging options: File, Screen
- Failover and High Availability
- Daily and weekly scheduling of session connections
- Integrated support for TLS communications
- Automated unit and acceptance tests
Installation
Add the following to your Cargo.toml:
[]
= { = "https://github.com/fixer-rs/fixer" }
FIX Messaging Model
To send and receive FIX messages, your application will use the generated type-safe message packages.
fixer includes a code generator (fixer-gen) that produces Rust modules from the FIX 4.0 - FIX 5.0SP2 XML specifications. The generated code lives in the fixer-fix crate and provides:
tag— Tag constantsfield— Typed field wrapper structsenums— Field enumeration valuesfix40throughfix50sp2— Per-version message types with constructors, setters, and gettersfixt11— FIXT 1.1 session-level messages
For most FIX applications, these generated resources are sufficient. Custom FIX applications may generate source specific to the FIX spec of that application using the fixer-gen tool.
Code Generation
To regenerate the FIX message types from the XML specifications:
To generate with f64 instead of Decimal for numeric fields:
Examples
The examples/ directory contains working applications that demonstrate how to use fixer:
- Echo Server — A FIX Acceptor that echoes incoming messages back to the sender
- Trade Client — A FIX Initiator that sends a
NewOrderSingleafter logon and prints execution reports
Run both together to see a complete FIX session:
# Terminal 1: start the echo server
# Terminal 2: start the trade client
See examples/README.md for more details.
Build and Test
# run lints and tests
# format code
General Support
FIX Protocol
More information about the FIX protocol can be found at the FIX Trading Community website.
Bugs and Issues
Bugs and issues can be submitted through the GitHub repository issues list.
Please provide sample code, logs, and a description of the problem when submitting an issue.
Contributing
Contributions are welcome. Please open an issue or pull request on GitHub.
Collaboration
I'm Karuna Murti, the author of fixer. I'm interested in working together with people who want to build a company or implement this in their company. If you're interested, feel free to reach out at karuna.murti@gmail.com.
Licensing
This software is available under the QuickFIX Software License. Please see the LICENSE.txt for the terms specified by the QuickFIX Software License.