# fixparser
Parse FIX messages without a FIX dictionary.
```
[dependencies]
fixparser = "0.1.0"
```
It currently supports the following input/output formats:
**Input:**
- [FIX Tag=Value (classic FIX)](https://www.fixtrading.org/standards/tagvalue/)
**Output:**
- Json string
## Examples
Print internal representation:
```rust
if let Some(fix_message) = fixparser::FixMessage::from_tag_value(&input) {
println!("{}", fix_message.to_json());
}
```
Print json:
```rust
// this input has the non-printable character 0x01 as the separator of the fields
let input = "8=FIX.4.4555=2600=CGY604=2605=F7605=CGYU0600=CGY604=2605=F7605=CGYM010=20";
if let Some(fix_message) = fixparser::FixMessage::from_tag_value(&input) {
println!("{}", fix_message.to_json());
}
```
> See tests/ folder for more examples
## Goodies
- It supports groups and you don't need a FIX dictionary
- You don't need to specify the separator of the input string as long as they are consistent. eg: 0x01, |, etc...
- You don't need to "trim" the input string as the lib detects the beginning and end of the message
## Limitations
- There are a few scenarios the library can't parse as it can't guess the format of the message without a dictionary:
```
group 1000 does 1003 belong to the second repetition of group 1000?
```
## License
[MIT](https://github.com/whoan/fixparser/blob/master/LICENSE)