Core Concepts
As a quick reference and first overview, here a list of Sidex's core concepts each with a short description:
- Bundle
- A bundle is a flat collection of schemas evolving together. A Sidex bundle defines a data model, an API, or both. Every bundle has its own directory with a bundle manifest
sidex.toml
and aschemas
directory for schemas. - Schema
- A schema groups together multiple type and/or service definitions under a common namespace within a bundle. Schemas are used to organize such definitions into groups of related domain or functionality. Each schema is defined in a file
schema_name.sidex
within in theschemas
directory of its bundle whereschema_name
is the name of the schema. - Type Definition
- A type definition defines a data type constraining the form data may take. Sidex's type system supports a variety of different data types and even allows you to define your own primitives. For further details, read the section about data types.
- Service Definition
- A service definition defines a service specifying methods which can be invoked with certain arguments and return a result. Service definitions are at the core of API definitions. For further details, read the section about services.
- Language Mapping
- A language mapping defines how Sidex's data types and services are mapped to native types of a programming language. Language mappings are usually format-independent, i.e., independent of any interchange format.
- Format Mapping
- A format mapping defines how Sidex's data types are mapped to the primitives and structures of an interchange format. Format mappings are usually language-independent, i.e., independent of any programming language.