nappa85 / serde_fix

FiX meets Serde

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FiX meets Serde

This workspace is a set of Rust libraries for serialising to and deserialising from the FiX format. It is built upon Serde, a high performance generic serialization framework.

Warning

This workspace makes a really heavy use of proc-macros, building is really CPU and RAM intensive and can take a lot of time, at point of being killed by kernel OOM Killer.

Composition

This workspace is composed of:

Example usage

In your Cargo.toml simply insert fix_message for data structures and serde_fix for serialization/deserialization APIs:

[dependencies]
fix_message = "*"
serde_fix = "*"

If you need only certain FiX protocol versions, to speed up build times, you can use fix_messages features:

[dependencies]
fix_message = { version = "*", default-features = false, features = ["fix_50", "fix_50sp1", "fix_50sp2"] }
serde_fix = "*"

To deserialize a FiX message you can simply do:

let message: fix_message::Message = serde_fix::from_bytes(&buf).unwrap();

fix_message::Message is an enum, every variant represents a different FiX version. Inside every variant there is another enum, e.g. fix_message::fix40::Message, that represents every message type for that version. For example, a FiX 4.0 Logon message would decode like fix_message::Message::FIX40(fix_message::fix40::Message::Logon(Box<fix_message::fix40::messages::logon::Logon>)).

About

FiX meets Serde

License:Apache License 2.0


Languages

Language:Rust 100.0%