hyperjson
json-benchmark
Our great sponsors
hyperjson | json-benchmark | |
---|---|---|
1 | 12 | |
497 | 168 | |
- | 4.2% | |
0.0 | 4.8 | |
over 1 year ago | 24 days ago | |
Python | C++ | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hyperjson
-
Port of Python JSON serialization benchmark to Rust
https://github.com/mre/hyperjson :)
json-benchmark
-
Do You Know How Much Your Computer Can Do in a Second?
I donāt really understand what this is trying to prove:
- you donāt seem to specify the size of the input. This is the most important omission
- you are constructing an optimised representation (in this case, strict with fields in the right places) instead of a generic ādumbā representation that is more like a tree of python dicts
- rust is not a āmoderately fast languageā imo (though this is not a very important point. Itās more about how optimised the parser is, and I suspect that serde_json is written in an optimised way, but I didnāt look very hard).
I found[1], which gives serde_json to a dom 300-400MB/s on a somewhat old laptop cpu. A simpler implementation runs at 100-200, a very optimised implementation gets 400-800. But I donāt think this does that much to confirm what I said in the comment you replied to. The numbers for simd json are a bit lower than I expected (maybe due to the ādomā part). I think my 50MB/a number was probably a bit off but maybe the python implementation converts json to some C object and then converts that C object to python objects. That might half your throughput (my guess is that this is what the āstrict parseā case for rustc_serialise is roughly doing).
-
Serde Json vs Rapidjson (Rust vs C++)
But the code OP posted deserializes JSON without knowing anything about the structure, which is known to be slow in serde-json and doesn't appear to be the focus for the library. The json and json-deserializer crates should perform much better in that scenario.
- Good example of high performance Rust project without unsafe code?
- I'm a veteran C++ programmer, what can Rust offer me?
-
Rust is just as fast as C/C++
Of course that doesnt mean that in practice the available libraries are as optimized. Did you try actix? It tends to be faster than rocket. Also json-rust and simd-json are usually faster than serde-json, when you don't deserialize a known structure. Here are some benchmarks: https://github.com/serde-rs/json-benchmark
-
Lightweight template-based parser build system. Simple prototyping. Comfortable debugging. Effective developing.
The data for the test is taken from here: https://github.com/serde-rs/json-benchmark/tree/master/data
-
Performance of serde js value conversion and reference types
Here are some benchmarks https://github.com/serde-rs/json-benchmark
-
Serde zero-copy benchmarks?
I found two projects: * https://github.com/djkoloski/rust_serialization_benchmark - doesn't use Serde zero copy * https://github.com/serde-rs/json-benchmark - has copy vs borrowed, but the results were the same for both, so something's off there
-
Android Developers Have A Tough Life
Rust has a good enough standard library (Iād say comparable to C++), that you donāt really need packages for a lot of stuff. Most of my projects have 1 or 2 dependencies. Most of the time I am pulling in a JS parser (serde) and a parallelization library (rayon). These are both high performance libraries that make writing very fast (serde can handle 850 MB/s on a 5 year old laptop cpu per their benchmarks). Rayon is one of the best parallelism libraries Iāve worked with.
What are some alternatives?
python-benedict - :blue_book: dict subclass with keylist/keypath support, built-in I/O operations (base64, csv, html, ini, json, pickle, plist, query-string, toml, xls, xml, yaml), s3 support and many utilities.
rust_serialization_benchmark - Benchmarks for rust serialization frameworks
rust-serialization-benchmark - A Rust JSON serialization benchmark
hjson-rust for serde - Hjson for Rust
orjson - Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy
simd-json - Rust port of simdjson
lsp-mode - Emacs client/library for the Language Server Protocol
MessagePack - MessagePack serializer implementation for Java / msgpack.org[Java]
Rus - This is a script that can turn inputs to a json intents output.
json - Strongly typed JSON library for Rust
ansible-notify-check - Ansible module for sending periodic notifications on desktop.
safety-dance - Auditing crates for unsafe code which can be safely replaced