Crates.io | qif_parser |
lib.rs | qif_parser |
version | 0.4.0 |
source | src |
created_at | 2020-07-12 08:43:32.50447 |
updated_at | 2023-11-29 22:00:25.727969 |
description | This library parses Quicken Interchange Format (QIF) files |
homepage | |
repository | https://github.com/antoinejaussoin/rust-qif-parser |
max_upload_size | |
id | 264327 |
size | 52,961 |
Very high performance QIF (Quicken Interchange Format) parser in Rust.
QIF is a format invented by Quicken to record financial data.
You can read more on this Wikipedia article.
This library will take your QIF data as a string, parse it, and return some structured data for further processing.
This repository compares the same functionality written in Node.JS and in Rust.
If you have both Node and Rust installed, you can run both by doing make compare
.
Spoiler alert: for 1 million transaction items, the Node implementation would take about 4 minutes on a M1 Mac, and the Rust implementation a little over... 1 second. We then have a 200x speed difference between the two. Fancy that!
Actual output from my M1 Mac:
Executing both
NODE: Done processing 1000 items. Time it would take to process 1M items: 238793ms
RUST: Done processing 100000 items. Time it would take to process 1M items: 1430ms
https://en.wikipedia.org/wiki/Quicken_Interchange_Format
https://rust-lang.github.io/api-guidelines/checklist.html
https://stevedonovan.github.io/rust-gentle-intro/6-error-handling.html
f64
instead of f32