This repository contains the Axiom family of tools, including SDA, a small language and command-line tool for reading, checking, and reshaping structured data.
The SDA surface is split into two publishable Rust crates:
sda: command-line interface for evaluating, checking, and formatting SDA programssda-lib: Rust library for parsing, validating, formatting, and evaluating SDA programs over JSON values
Install the CLI from crates.io:
cargo install sdaEmbed the library in Rust:
[dependencies]
sda-lib = "1"
serde_json = "1"If you want to try SDA immediately, start with these:
sda check -f SDA/examples/getting_started/person_name.sda
sda fmt -f SDA/examples/getting_started/person_name.sda --check
sda eval -f SDA/examples/getting_started/person_name.sda -i SDA/examples/getting_started/person.jsonThese three commands answer three different questions:
- is the SDA source valid?
- is it formatted correctly?
- what happens when I run it on real data?
Start here if you want the approachable guide rather than the formal specification:
If you need the formal contract instead of the beginner guide:
If you are preparing a release, see RELEASE.md.