SerDes for TypeScript
GloriousThe library you can rely on,
For binary serialization and deserialization,
In Node, Deno, and the Web environment,
Which is simple and yet performant.
Features
- Performant
- Easy to use
- Full TypeScript support
- Super extensible
- 99% tree-shakable
- Zero dependencies (small footprint)
- Runs in Node, Deno and browsers
- More details...
Performance Comparison with other tools in Node (ops/sec)
Installation
Expand for more details.
Node (Webpack, Babel, React, Svelte, Vue, Svelte...)In the terminal with NPM
npm i sirdez
Or with Yarn
yarn add sirdez
In the code with ES Modules
import * as sd from "sirdez";
or with CommonJS
const sd = require("sirdez");
In HTML with UMD
<script src="https://cdn.jsdelivr.net/npm/sirdez/dist/sirdez.umd.js"></script>
In an ES module script (statically)
import * as sd from "https://cdn.jsdelivr.net/npm/sirdez/dist/sirdez.es.js";
In an ES module script (dynamically)
const sd = await import(
"https://cdn.jsdelivr.net/npm/sirdez/dist/sirdez.es.js"
);
In code (statically)
import * as sd from "https://deno.land/x/sirdez/mod.ts";
In code (dynamically)
const sd = await import("https://deno.land/x/sirdez/mod.ts");
Usage
Simple snippet of code
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 });
Using TypeScript utilities
type Person = sd.GetType<typeof person>;
const bob: Person = {
name: "Bob",
age: 23
};
Resources
Contribution
Help and suggestions are welcomed!