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.