A schema compiler for the fastest serializing library.
Don't know what Sia is? Check out the Github repo.
⚠️ This project is still in the early stages of development. Check the roadmap for more information.
npm install -g sia-schema
Or using npx
:
npx sia-schema compile sample.sia
Add the --help
flag to see the available options.
Sia is a fast serializing library that is used to serialize and deserialize data. It is designed to be used in scenarios where performance is critical, such as in real-time systems or in distributed systems.
However, the library's API is quite raw, and requires some previous knowledge of its API to get even the most basic data types serialized/deserialized.
Check this example:
new Sia().addString32("Andrey").addUInt32(25).addString32("andrey@sia.com")
.content;
Now, imagine you have to do this for every single type, having to deal with nested types, arrays, etc. That's where this schema compiler comes to help.
First, you need a schema:
schema Person {
name text
age? int32(min = 0, max = 120)
email? text(encoding = "ascii")
}
This will generate the exact same code as above.
- Generate JavaScript code from the intermediate representation
- Generate TypeScript code from the intermediate representation
- Generate Python code from the intermediate representation
- Add support for functions