brainstate

soml-lang/soml

SOML is a configuration format for humans that keeps JSON's data model and strictness while dropping braces, quotes and commas.

It gives the comfort of YAML with the clarity of JSON, so a value's type comes from its syntax and is never guessed from its content. A single-pass grammar with no lookahead, plus one canonical form, so every implementation and formatter reads equal values as equal bytes.

★ 175MITGitHub ↗

Similar

  1. postmanlabs/postman-app-support

    The public support repository where Postman users file feature requests, integration ideas and bug reports.

    ★ 6.0kGitHub ↗

  2. jyotipmahes/ML-Interview-Prep

    A repository containing Machine Learning Engineer interview preparation materials and from-scratch algorithm implementations.

    Jupyter Notebook★ 534GitHub ↗

  3. nlohmann/json

    JSON for Modern C++

    C++★ 50.8kMITGitHub ↗

  4. toml-lang/toml

    Tom's Obvious, Minimal Language

    ★ 20.7kMITGitHub ↗

  5. go-yaml/yaml

    YAML support for the Go language.

    Go★ 7.0karchivedGitHub ↗

  6. storytold/craft-anything

    Craft Anything is an open-source, pure Rust engine that studies software to understand its mechanics and uses AI agents to build new versions.

    Rust★ 9.5kApache-2.0GitHub ↗

  7. caru-ini/stack-diagram

    An agent skill that generates architecture diagrams with official logos from a one-sentence description of a tech stack.

    TypeScript★ 1.6kMITGitHub ↗

  8. aaitor/skill-video-studio

    A local video-production workspace driven by a Claude Code skill that turns a product walkthrough into a polished demo video.

    HTML★ 335MITGitHub ↗

sources

Claims below include README evidence. A matching quote or worker agreement does not establish that a claim is correct. Category majority among 3 workers. Version 1.

SOML is a configuration format for humans that keeps JSON's data model and strictness while dropping braces, quotes and commas.

SOML is a config format that is pleasant to write and easy to read.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

It gives the comfort of YAML with the clarity of JSON, so a value's type comes from its syntax and is never guessed from its content.

SOML gives you the comfort and the strictness, without the guessing.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

A single-pass grammar with no lookahead, plus one canonical form, so every implementation and formatter reads equal values as equal bytes.

The grammar is one pass with no lookahead

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Keys need no quotes, a line break replaces a comma, and the top level needs no braces.

Keys need no quotes, even with dashes, a line break replaces a comma, and the top level needs no braces.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

A string always has quotes; a value without quotes must be a number, date, instant, duration or keyword.

A string always has quotes, and a value without quotes must be a number, a date, an instant, a duration, or a keyword

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Calendar dates, instants and durations are native values.

`2026-09-19` is a calendar date, `2026-09-19T14:00:00Z` is an instant, and `1h30m` is a duration

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Braces and line breaks give the structure, so tabs, spaces and copy and paste never change what a file means.

Braces and line breaks give the structure, so tabs, spaces, and copy and paste never change what a file means

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Equal values give equal bytes for hashing, signing and comparing.

Equal values give equal bytes, for hashing, signing, and comparing.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

A formatter keeps comments, member order and the spelling of each value.

A separate formatter keeps your comments, member order, and the spelling of each value.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Every implementation runs a shared conformance suite of nearly 1000 cases.

of nearly 1000 cases, so every implementation reads a file the same way.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Duplicate keys, lone surrogates and out-of-range numbers are errors, not parser-specific behavior.

Duplicate keys, lone surrogates, and numbers out of range are errors, not behavior that each parser decides.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

A document may also be a top-level array.

A document may also be a top-level array.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

The format requires no top-level braces, unquoted keys, and uses line breaks instead of commas, allowing comments almost anywhere for a pleasant writing experience.

The top level needs no braces, keys need no quotes, line breaks replace commas, and comments go almost anywhere.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Native support for dates, instants, and durations as distinct value types prevents ambiguity in configuration values like timeouts.

Dates like 2026-09-19, instants like 2026-09-19T14:00:00Z, and durations like 30s are real values, so nobody has to guess the unit of timeout: 30.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Literal strings eliminate the need for escaping paths and regexes, while dedented block strings are provided for writing prose.

Paths and regexes need no escaping, and prose goes in block strings.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

A canonical form ensures equal values produce equal bytes for hashing and signing, and a shared conformance suite guarantees consistent behavior across implementations.

One canonical form and a shared conformance suite mean every implementation reads your file the same way.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

The format is strict about duplicate keys, lone surrogates, and out-of-range numbers, treating them as errors rather than allowing parser-specific behavior.

Duplicate keys, lone surrogates, and numbers out of range are errors, not behavior that each parser decides.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

The grammar is designed for a single-pass parse with no lookahead, and implementations are validated against a language-neutral conformance suite of nearly 1000 cases.

The grammar is one pass with no lookahead, and every implementation runs the language-neutral conformance suite of nearly 1000 cases

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

The format avoids security risks like YAML aliases and tags by having one way to load data and imposing limits on nesting and ranges.

SOML has neither, one way to load, and limits on nesting and ranges.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

A specified formatter preserves comments, member order, and value spelling, ensuring that every conforming formatter produces the same output for the same file.

A separate formatter keeps your comments, member order, and the spelling of each value.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Simplifies configuration syntax by removing braces, quotes, and commas while allowing comments almost anywhere.

The top level needs no braces, keys need no quotes, line breaks replace commas, and comments go almost anywhere.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Provides native support for dates, instants, and durations as first-class values to prevent unit guessing.

Dates like 2026-09-19, instants like 2026-09-19T14:00:00Z, and durations like 30s are real values, so nobody has to guess the unit of timeout: 30.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Simplifies string handling by allowing unescaped paths, regexes, and prose within block strings.

Paths and regexes need no escaping, and prose goes in block strings.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Guarantees consistent parsing across different implementations through a single canonical form and conformance suite.

One canonical form and a shared conformance suite mean every implementation reads your file the same way.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Includes a spec-defined formatter that preserves comments, key order, and value spelling during serialization.

A separate formatter keeps your comments, member order, and the spelling of each value.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Maintains familiarity with JSON syntax while adding human-friendly features like comments and unquoted keys.

SOML uses :, so hand-written JSON is usually valid SOML, and the syntax is already familiar from JSON, YAML, and JavaScript.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Prevents silent structural changes by requiring quotes for keys containing dots, unlike TOML.

SOML has no dotted keys: a dot in a bare key is an error, so you quote it.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: The specification is a draft and still open to feedback.

Draft spec. Feedback welcome.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Unquoted words such as no are errors instead of booleans.

So `country: no` is an error rather than `false`

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: It has no YAML-style aliases or tags and imposes limits on nesting and ranges.

SOML has neither, one way to load, and limits on nesting and ranges.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Block strings are dedented, add no trailing newline and require LF line endings.

SOML dedents block strings, adds no trailing newline, and requires LF.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Integers are exact 64-bit values; a larger one is an error.

A SOML int is an exact int64; a larger one is an error.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: The specification is currently in draft status and is open for feedback.

Draft spec. Feedback welcome.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: The specification is currently a draft and subject to change based on community feedback.

Draft spec. Feedback welcome.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Integer values are limited to exact 64-bit integers, rejecting larger numbers as errors.

A SOML int is an exact int64; a larger one is an error.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Does not support dotted keys for nested access, requiring explicit quoting for keys with dots.

SOML has no dotted keys: a dot in a bare key is an error, so you quote it.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Limitation: Lacks implicit table creation and table headers found in TOML, requiring explicit braces for structure.

SOML has no implicit tables, and one syntax each for objects and arrays.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Alternative to JSON

It is JSON without the noise, and with comments.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Alternative to YAML

SOML keeps what I like about YAML: comments, no braces around the file, no commas at the ends of lines, and keys without quotes.

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

Alternative to TOML

SOML keeps what TOML gets right: predictable types, literal strings, insignificant indentation, and duplicate keys as errors.

Quote matched the README or GitHub description at extraction. Same claim and quote from 3 worker(s). Interpretation not reviewed by a maintainer.

Alternative to JSON

JSON has the strictness but not the comfort: quotes, commas, and braces everywhere, and no comments.

Quote matched the README or GitHub description at extraction. Same claim and quote from 2 worker(s). Interpretation not reviewed by a maintainer.

Alternative to YAML

YAML has the comfort but not the clarity: - list markers, nested indentation, and types guessed from content

Quote matched the README or GitHub description at extraction. Same claim and quote from 1 worker(s). Interpretation not reviewed by a maintainer.

developer-tools · other