The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning. Learn more →
Top 23 Serde Open-Source Projects
-
marshmallow
A lightweight library for converting complex objects to and from simple Python datatypes.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
msgspec
A fast serialization and validation library, with builtin support for JSON, MessagePack, YAML, and TOML
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
serde-aux
An auxiliary serde library providing helpful functions for serialisation and deserialisation for containers, struct fields and others.
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives
Project mention: Empowering Web Privacy with Rust: Building a Decentralized Identity Management System | dev.to | 2024-04-09Serde Documentation: Comprehensive guide and reference for using Serde, Rust's framework for serializing and deserializing data.
Somehow get a serializer going for your database models. I used marshmallow and flask-marshmallow
Oh wow. So serde_json doesn't roundtrip floats by default, it uses some imprecise faster algorithm https://github.com/serde-rs/json/issues/707
Good thing there's msgpack I guess.
Whenever this kind of arguments come up, I am sad that RON (https://github.com/ron-rs/ron) is not better known. To me it feels like a cleaner and better JSON.
In any case, my little experience with it had made me hate YAML. Generally speaking, I have come to dislike any language with significant whitespace other than Haskell.
Project mention: Htmx, Rust and Shuttle: A New Rapid Prototyping Stack | news.ycombinator.com | 2023-11-01
Project mention: Published my first Crate today to map Environment Variables to Enums | /r/rust | 2023-06-11Have you seen envy?
Maybe check out schemars, you might have to trim down the data that is generated by it but I think it should do everything you need.
Project mention: pyserde: Serialization library on top of dataclasses, inspired by serde-rs | news.ycombinator.com | 2023-11-18
Project mention: Trait object with generic funtion: don't understand how to do it | /r/rust | 2023-05-02Have you tried something like this?
Project mention: Announcing Sonic-rs 0.2.0: Separate safe & unsafe functions clearly and performance optimization. | /r/rust | 2023-10-31Crates: https://crates.io/crates/sonic-rs
bitcode is a new binary serialization format that aims to minimize size while maintaining competitive speed. Since our initial post, we've added a derive macro which unlocks more performance and control than was possible with serde.
Project mention: Do You Know How Much Your Computer Can Do in a Second? | news.ycombinator.com | 2023-06-22I 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 related posts
- What even is a JSON number?
- Serde-YAML for Rust has been archived
- YAML decoder for rust discontinued do to maintainer "not using YAML anymore"
- I pre-released my project "json-responder" written in Rust
- Announcing Sonic-rs 0.2.0: Separate safe & unsafe functions clearly and performance optimization.
- Announcing sonic-rs: A fast Rust JSON library based on SIMD.
- Next Validator of Rust–Valitron
-
A note from our sponsor - WorkOS
workos.com | 19 Apr 2024
Index
What are some of the best open-source Serde projects? This list will help you:
Project | Stars | |
---|---|---|
1 | serde | 8,558 |
2 | marshmallow | 6,888 |
3 | json | 4,517 |
4 | ron | 3,096 |
5 | msgspec | 1,857 |
6 | calamine | 1,503 |
7 | msgpack-rust | 1,073 |
8 | envy | 797 |
9 | schemars | 694 |
10 | pyserde | 651 |
11 | erased-serde | 615 |
12 | serde-wasm-bindgen | 531 |
13 | sonic-rs | 310 |
14 | Weld | 289 |
15 | tsify | 267 |
16 | bitcode | 246 |
17 | monostate | 215 |
18 | serde-encrypt | 175 |
19 | json-benchmark | 168 |
20 | recap | 164 |
21 | dlhn | 160 |
22 | serde-aux | 144 |
23 | hjson-rust for serde | 95 |