awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ron-rs avatar

ron-rs/ron

0
View on GitHub↗
3,940 stars·145 forks·Rust·Apache-2.0·1 viewdocs.rs/ron↗

Ron

RON is a serializer and deserializer for a strongly typed, human-readable data exchange format. It mirrors Rust language syntax to represent complex data structures and configurations, serving as an alternative to formats like JSON and TOML.

The format preserves native Rust type idioms, including enums, structs, tuples, and ranges. It supports inline comments and specialized numeric bases, allowing for the creation of typed configuration files and human-editable data storage.

The library provides source-mapped error reporting to track character coordinates during syntax failures and includes options for configurable pretty-printing to manage indentation and whitespace. Data mapping is handled through common language interfaces to convert custom types into serialized text.

Features

  • Rust - Provides a serialization library specifically designed for the Rust ecosystem to convert complex structures to readable text.
  • Complex Data Serialization - Supports the serialization of complex Rust non-primitive types including structs, tuples, and lists.
  • Data Serialization Formats - Provides a specialized data serialization format for converting RON strings back into typed Rust structures.
  • Typed Configuration Files - Creates and manages typed configuration files that use Rust syntax to define complex application settings.
  • Language-Mirroring Syntaxes - Implements a serialization format that replicates Rust's structural syntax for maximum consistency with the language.
  • Strongly Typed Configuration Formats - Provides a configuration format that preserves native Rust type idioms including enums and structs.
  • Human-Readable Configuration Formats - Provides a data format designed for manual editing, featuring native Rust syntax and inline comments.
  • Recursive Descent Parsers - Implements a recursive descent parsing engine to translate formatted text into structured syntax trees.
  • Serialized Data Comments - Enables the addition of single-line text annotations inside serialized data to provide context without altering the parsed value.
  • Source Code Error Location Reporters - Tracks exact character coordinates in the input stream to provide precise line and column data during syntax failures.
  • Human-Readable Formatting - Includes tools for transforming serialized data into human-readable versions with configurable indentation and spacing.
  • Optional Value Serializers - Implements serialization logic that uses explicit markers to represent the presence or absence of optional values.
  • Trait-Based Serialization - Uses Rust traits to define how custom data structures are encoded into the RON text format.
  • Type-Safe Data Handling - Ensures type safety during data interchange by preserving strong typing and native Rust language idioms.
  • Structured Text Pretty-Printing - Provides configurable visual layout options to format structured data into human-readable, indented text.

Star history

Star history chart for ron-rs/ronStar history chart for ron-rs/ron

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Ron

Similar open-source projects, ranked by how many features they share with Ron.
  • edn-format/ednedn-format avatar

    edn-format/edn

    2,760View on GitHub↗

    Extensible Data Notation is a language-agnostic text format designed for the reliable exchange of structured data and immutable values across diverse programming environments and distributed systems. It provides a standardized way to organize information into hierarchies using collections such as maps, sets, and vectors, ensuring consistent data recognition through the use of symbolic identifiers and keywords. The format distinguishes itself through its support for extensible tagged elements, which allow developers to register custom handlers to interpret domain-specific data structures beyon

    View on GitHub↗2,760
  • dtolnay/serde-yamldtolnay avatar

    dtolnay/serde-yaml

    1,019View on GitHub↗

    Serde-yaml is a serialization library for the Rust programming language that facilitates the conversion of complex data structures into YAML format and the deserialization of YAML text into strongly typed objects. It functions as a data format converter, enabling the transformation of structured information between native language types and human-readable configuration files. The library integrates with the standard Rust serialization ecosystem to map arbitrary data types to and from the YAML format. By utilizing trait-based data mapping, it allows developers to manage application settings an

    Rustrustserdeyaml
    View on GitHub↗1,019
  • serde-rs/serdeserde-rs avatar

    serde-rs/serde

    10,457View on GitHub↗

    This project is a framework for the efficient serialization and deserialization of data structures. It provides a unified, macro-based interface that automates the conversion of complex internal objects into standardized formats and reconstructs them from raw input streams or buffers. By leveraging compile-time code generation, the library minimizes manual implementation overhead while ensuring consistent logic across diverse data types. The framework distinguishes itself through a format-agnostic data model and a visitor-based parsing architecture that decouples data structures from specific

    Rustderiveno-stdrust
    View on GitHub↗10,457
  • serde-rs/jsonserde-rs avatar

    serde-rs/json

    5,587View on GitHub↗

    This is a Rust serialization library for converting data structures to and from JSON strings and byte streams. It is built as a framework within the Serde ecosystem, providing both a strongly typed parser for compile-time safety and a recursive value tree for manipulating JSON data without a predefined schema. The project supports both typed and untyped processing. It can map JSON data into specific Rust types for schema conformity or parse input into a flexible, schemaless representation. It also includes macro-based utilities for the dynamic construction of JSON objects.

    Rustjsonrustserde
    View on GitHub↗5,587
See all 30 alternatives to Ron→

Frequently asked questions

What does ron-rs/ron do?

RON is a serializer and deserializer for a strongly typed, human-readable data exchange format. It mirrors Rust language syntax to represent complex data structures and configurations, serving as an alternative to formats like JSON and TOML.

What are the main features of ron-rs/ron?

The main features of ron-rs/ron are: Rust, Complex Data Serialization, Data Serialization Formats, Typed Configuration Files, Language-Mirroring Syntaxes, Strongly Typed Configuration Formats, Human-Readable Configuration Formats, Recursive Descent Parsers.

What are some open-source alternatives to ron-rs/ron?

Open-source alternatives to ron-rs/ron include: edn-format/edn — Extensible Data Notation is a language-agnostic text format designed for the reliable exchange of structured data and… dtolnay/serde-yaml — Serde-yaml is a serialization library for the Rust programming language that facilitates the conversion of complex… serde-rs/serde — This project is a framework for the efficient serialization and deserialization of data structures. It provides a… serde-rs/json — This is a Rust serialization library for converting data structures to and from JSON strings and byte streams. It is… snailclimb/guide-rpc-framework — This is a remote procedure call framework built on Netty for asynchronous communication between distributed services.… ijl/orjson — orjson is a high-performance Python library for serializing and deserializing JSON data. It functions as both a JSON…