0.0.1 • Published 7 years ago

pck v0.0.1

Weekly downloads
3
License
MIT
Repository
github
Last release
7 years ago

pck is a binary format specifically designed for generating efficient serializers and deserializers in javascript.

Current Status

WORK IN PROGRESS

Packages

  • pck Core data structures and helper functions for generating schemas.
  • pck-emit-js Emitter for Javascript/TypeScript (Browser/Node).
  • pck-emit-go Emitter for Go.
  • pck-browser Helper utilities for Javascript (Browser).
  • pck-node Helper utilities for Javascript (Node).

Features

  • Javascript API for generating schemas (custom data query languages)
  • Binary format
  • Compact storage size
  • Efficient serialization and deserialization in javascript
  • Compact javascript serializers and deserializers that can immediately generate objects with appropriate types without any additional steps

Data Types

TypeStorage SizeDescription
Bool1 bit (bit store)Boolean
I81 byteInt8
U81 byteUint8
I162 bytesInt16
U162 bytesUint16
I324 bytesInt32
U324 bytesUint32
F324 bytesFloat32
F648 bytesFloat64
IVAR1-5 bytesVariadic Int32 (ZigZag encoding)
UVAR1-5 bytesVariadic Uint32
UTF81-5+N bytesUTF8 String
ASCII1-5+N bytesASCII String
BYTES1-5+N bytesByte Array
ARRAY1-5+N bytesArray
MAP(K,V)1-5+(NK+NV) bytesMap
ASCII(N)N bytesFixed ASCII String
BYTES(N)N bytesFixed Byte Array
ARRAY(N)NV bytesFixed Array
REF(T)size(T) bytesReference to an Object
ONE_OF(T...)1-5+size(...T) bytesOne of Object types

Object Structure

struct {
  // bitSet is used to store flags for optional fields and boolean values
  bitSet?: u8[N];
  // Data
  ...data;
}