Ron: Rusty Object Notation

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • ron

    Rusty Object Notation

  • Serde is strongly, strictly typed: you have to specify what type you want to decode to. It’s nothing like Python’s Pickle protocol.

    See, for example, https://github.com/ron-rs/ron/blob/484fcab0686dfd18c7e29b6c1..., where it (in a type-inferency way) says “parse as Config”.

  • insta

    A snapshot testing library for rust

  • Ron is quite practical if you are having a serializable interface, and you want to get debug like output from it for snapshotting purposes. I am using this with my insta snapshot testing library (https://insta.rs/) in some projects.

  • 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.

    WorkOS logo
  • hujson

    HuJSON: JSON for Humans (JWCC: JSON w/ comments and trailing commas)

  • That, and comments!

    Personally, I really hope Human JSON, https://github.com/tailscale/hujson , will take over!

  • edn

    Extensible Data Notation

  • Alien is not a reason something is bad, just that's it's unusual. JSON was a bit alien when it first arrived as well, as everyone was used to XML at the time.

    `{num 5, val 4}` looks fine to me, but we can do even better! We already know objects/maps are always in pairs, so we don't really need that comma either. Just do `{num 5 val 4}` and we save yet another unnecessary characters.

    Of course, I didn't come up with this format myself, what I actually want JSON to be is EDN (https://github.com/edn-format/edn) which is a standalone format but also directly used in Clojure, so it already exists inside a programming language and works very well. There keys are strings though, so you example would end up being `{"num" 5 "val" 5 "person" var}`, where commas are optional.

  • dhall-lang

    Maintainable configuration files

  • https://dhall-lang.org/

    Cool indeed. I wonder how you can supply it with types from the program that consumes the config.

    My Gradle config is in Kotlin these days. Kotlin, besides being a full blown prog lang, has nice features for config specs (map/list literals, typed, eDSL syntax). Though it is an enormous dependency (way to big for a project that just needs a config file format).

  • json5

    JSON5 — JSON for Humans

  • config

    configuration library for JVM languages using HOCON files

  • HOCON is a great human-readable alternative to JSON. It's a superset of JSON with lots of cool features that make it both more readable and easier to use.

    Here's a rundown of HOCON's main features: https://github.com/lightbend/config#features-of-hocon

  • 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.

    InfluxDB logo
  • serde

    Serialization framework for Rust

  • I appreciate the response, but the link you gave only states that the value returned by from_reader is strongly typed; it says nothing about what from_reader might be doing internally before it returns that value.

    The actual answer seems to be https://github.com/serde-rs/serde/issues/1087#issuecomment-3... - no security implications if none of your manually implemented Deserialize impls have security implications.

  • proposal-json-superset

    Discontinued Proposal to make all JSON text valid ECMA-262

  • Bookmarked just because I like the name.... ;-D

    So all JSON is valid (modern) JavaScript. [1]

    Is RON valid Rust?

    [1] https://github.com/tc39/proposal-json-superset

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts