A readable data serialization format for Rust that resembles Rust syntax and supports Serde's data model.
RON (Rusty Object Notation) is a human-readable data serialization format designed for Rust projects. It mirrors Rust's syntax to offer a more natural and less verbose alternative to JSON for configuration and data interchange, with full support for Serde's data model.
Rust developers working on projects that require readable configuration files, data persistence, or serialization that aligns closely with Rust's type system and idioms.
Developers choose RON over JSON for its Rust-like syntax, which includes unquoted field names, trailing commas, comments, and native support for enums and Option types, making it more readable and idiomatic for Rust codebases.
Rusty Object Notation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses unquoted field names, trailing commas, and optional struct names, mirroring Rust code for improved readability and ease of writing, as shown in the example configs.
Implements Serde's data model to handle structs, enums, tuples, and more, enabling seamless integration with existing Rust serialization workflows.
Natively represents enums, Option types, and chars more succinctly than JSON, reducing verbosity and aligning with Rust's type system.
Supports comments and pretty-printing, making it ideal for configuration files and debugging, as demonstrated by the pretty RON output feature.
Admits restrictions with tagged enums, untagged enums, and flattened structs, which can break roundtrips for complex data structures, as detailed in the limitations section.
Lacks full support for Serde's deserialize_any, making it unreliable for dynamic or generic use cases compared to JSON.
Tooling and community adoption are narrower than established formats, potentially hindering integration in mixed-tech stacks or requiring custom solutions.