Glorious SerDes for TypeScript
The library you can rely on,
For binary serialization and deserialization,
In Node, Deno, and the Web environment,
Which is simple and yet performant.
- Performant
- Easy to use
- Full TypeScript support
- Super extensible
- 99% tree-shakable
- Zero dependencies (small footprint)
- Runs in Node, Deno and browsers
- No
eval()
orFunction()
by default - Performant eval mode with
import "sirdez/eval"
- MessagePack for schemaless data
- More details...
Performance Comparison with other tools in Node (ops/sec)
Expand for more details.
Node (with or without bundlers)
npm i sirdez
yarn add sirdez
import * as sd from "sirdez";
const sd = require("sirdez");
Web (without bundlers)
<script src="https://cdn.jsdelivr.net/npm/sirdez/dist/sirdez.umd.js"></script>
import * as sd from "https://cdn.jsdelivr.net/npm/sirdez/dist/sirdez.es.js";
const sd = await import(
"https://cdn.jsdelivr.net/npm/sirdez/dist/sirdez.es.js"
);
Deno
import * as sd from "https://deno.land/x/sirdez/mod.ts";
const sd = await import("https://deno.land/x/sirdez/mod.ts");
const person = sd.use(
sd.struct({
name: sd.string(sd.utf8, sd.uint8),
age: sd.uint8
})
);
const bytes = person.toBytes({
name: "Bob",
age: 23
});
const samePerson = person.fromBytes(bytes);
console.log({ bytes, samePerson });
type Person = sd.GetType<typeof person>;
const bob: Person = {
name: "Bob",
age: 23
};
- Support decorators for schema
msgpack
extension mechanism using classes- Better support for protocol buffers
- Avro-Sirdez schema transpiler
msgpack
becomes very slow for large arrays (help wanted for optimizing it! 🙏)
Help and suggestions are welcomed!
Copyright 2022 Wei (weisrc).
This software is under the MIT license.
Please see LICENSE for more information.