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 @timeleap/sia-schema
Or using npx
:
npx @timeleap/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().addString8("Andrey").addUInt32(25).addAscii("[email protected]").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 string8
age? int32
email? string(encoding = "ascii")
}
This will generate the exact same code as above.
Language | Basic Support | Arrays | Hash Maps | Plugins |
---|---|---|---|---|
TypeScript | 👍 | ❌ | ❌ | 👍 |
JavaScript | ❌ | ❌ | ❌ | ❌ |
Python | ❌ | ❌ | ❌ | ❌ |
Go | ❌ | ❌ | ❌ | ❌ |
C/C++ | ❌ | ❌ | ❌ | ❌ |