Skip to content

Describe binary structures with full TypeScript support. Encode and decode into pure JavaScript objects.

License

Notifications You must be signed in to change notification settings

iwoplaza/typed-binary

Repository files navigation

typed binary (light mode) typed binary (dark mode)

Describe binary structures with full TypeScript support.

WebsiteDocumentation

Basic Type and Documentation Inference Basic Type and Documentation Inference

Why Typed Binary?

Serialize and deserialize typed schemas without the need for redundant interfaces or an external DSL. Schemas themselves define what type they encode and decode, and the IDE knows it!

  • Since value types are inferred from the schemas themselves, there is a single source-of-truth.
  • No external DSL necessary to define the schemas, meaning you have instant feedback without the need to compile the interface definitions.
  • It's platform independent (use it in Node.js as well as in in Browsers)
  • While being made with TypeScript in mind, it also works in plain JavaScript.

Documentation

The typed binary documentation is a great starting point for learning how to use the library.

Installation

# using npm
npm install typed-binary

# using pnpm
pnpm add typed-binary

# using yarn
yarn add typed-binary

To properly enable type inference, TypeScript 4.5 and up is required because of it's newly added Tail-Recursion Elimination on Conditional Types feature,

Running examples

There are a handful of examples provided. To run any one of them make sure to clone the typed-binary repository first, then go into the examples/ directory. To setup the examples environment, run pnpm install, which will fetch dependencies, build the parent project and link it to the 'examples' project.

Pick an example that peaks interest, and run pnpm example:exampleName.