Sidex is under active development. Public contracts may change before 1.0. The documentation follows the main branch; use a matching CLI version when following its examples.
Sidex is a format- and language-agnostic data modeling language with a focus on type safety, extensibility, and developer ergonomics. Sidex aims to simplify data exchange between different programming languages and platforms via potentially multiple interchange formats and storage backends.
💡 Idea: Define your data model once with Sidex and then generate code for different languages and interchange formats from this single ground truth.
Sidex's type system and definition language are inspired by Rust. With custom attributes, similar to Rust's attributes, the possibilities for code generation become almost limitless. You can easily develop your own code generator or extend an existing one to fit your needs.
To learn more, checkout Sidex's website. 🚀
- Schema-first definition of data structures.
- Designed for format- and language-agnostic definitions.
- Modern algebraic data types and non-null by default.
- Extensible with user-defined opaque types.
- Support for generics, recursive types, and custom attributes.
- Out-of-the-box support for Rust, TypeScript, Python, and JSON Schema.
Run Sidex through npm or uv:
npx sidex-cli --help
uvx sidex-cli --helpFor a persistent installation, use npm install --global sidex-cli,
uv tool install sidex-cli, or pipx install sidex-cli. Each provides
sidex and sidex-cli.
Prebuilt packages support Linux and macOS on x64 and ARM64. See the getting started guide for requirements and installation from source.
The documentation covers the language, code generation, JSON mapping, validation, and API lifecycle metadata. See www/README.md to develop and check the documentation site.
Sidex is licensed under either MIT or Apache 2.0 at your opinion.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache 2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Made with ❤️ by Silitics.