- maybe use the
codegen
library - or custom proc-macro
- I think we could end up with this, but perhaps this is blasphemous
#[derive(FixTypes)] include!("fix-spec.xml")
This library help to build FIX aware applications using Rust.
Goals:
- Provide simple binding for FIX protocol messages and fields
- Provide user friendly object
- Data must be generated from XML dictionaries
Non goals:
-
Produce latency sensitive code.
Performances is important. But we are not targeting nano seconds serialization / deserialisation. Just switch to FPGA for this kind of latencies.
See benchmark for more information.
-
Provide a full FIX engine
Here some integration tests to show code usages:
For now the project is in its early beginning. So, this project is still not fully production ready.
Any help and PR are welcome 😃 !
DONE:
- FIX dictionary XML parser + data model
- Field gerator
- Message generator
- Toolchain to generate library from generated code
- Message encoder
- Message decoder
- Helper for message checksum and length
- Find target library name 🤔
TODO:
- Message builder from MsgType field
- Publish to crates.io
- Add example usages
There is already so much generic server implementation for Rust. I just do not want to force user to use specific server / client framework.
This library is focus on message correctness and have user friendly object to decode / encode FIX messages.