Binary serialization that gets out of your way.
A fast, compact binary serialization library for TypeScript, Go, Python, and C++. No field tags, no type markers: just values and length prefixes.
Four languages
Serialize in TypeScript, deserialize in Go. Each implementation is native to its language, but they all produce the same bytes on the wire.
One allocation
Writes into a pre-allocated buffer. One copy when you're done, zero intermediate allocations.
2-4x faster
In our benchmarks, Sia serializes 2-4x faster than JSON, MessagePack, and Protobuf in TypeScript.
14-77% smaller
No field names, no type markers: just values and length prefixes. A typical message is 14-77% smaller than the same data in JSON or Protobuf.
Schema compiler
Define your types once in a
.sia file, generate encode/decode functions for all four languages. Import them, call them, done. See the schema quick start.Zero dependencies
Pure standard-library code in every language. No native modules, no WASM, no runtime surprises.