@barchart/binary-serializer-ts
TypeScript icon, indicating that this package has built-in type declarations

1.1.3 • Public • Published

@barchart/binary-serializer-ts

NPM

Structure

  • BinarySerializer: All source code for the Binary Serializer library is in the src directory. This includes the core serialization logic, attribute definitions, buffer management, schema factories, and any other utilities required for the serialization and deserialization processes.

  • Tests: The tests directory contains a group of tests ensuring the library's reliability.

Example Usage

Here are some simple examples of the library's usage:

Serialize a Snapshot

import { Serializer, SchemaField, DataType } from '@barchart/binary-serializer-ts';

class TestEntity {
    propertyName: string;
    propertyNumber: number;
}

const entityId: number = 1;

const schemaFields: SchemaField[] = [
    { name: 'propertyName', type: DataType.string, isKey: true },
    { name: 'propertyNumber', type: DataType.int, isKey: false }
];

const entity = new TestEntity();
entity.propertyName = 'Name';
entity.propertyNumber = 123;

// Create a Serializer instance for the specified class with provided entity id and schema fields
const serializer = new Serializer<TestEntity>(entityId, schemaFields);

// Serialize the entity into a byte array
const bytes: Uint8Array = serializer.serialize(entity);

// Deserialize the byte array back into an object
const deserializedEntity = serializer.deserialize(bytes);

console.log(deserializedEntity.propertyName); // Output: Name
console.log(deserializedEntity.propertyNumber); // Output: 123

Serialize Changes:

import { Serializer, SchemaField, DataType } from '@barchart/binary-serializer-ts';

class TestEntity {
    propertyName: string;
    propertyNumber: number;
}

const entityId: number = 1;

const schemaFields: SchemaField[] = [
    { name: 'propertyName', type: DataType.string, isKey: true },
    { name: 'propertyNumber', type: DataType.int, isKey: false }
];

const previousEntity = new TestEntity();
previousEntity.propertyName = 'Name';
previousEntity.propertyNumber = 123;

const currentEntity = new TestEntity();
currentEntity.propertyName = 'Name';
currentEntity.propertyNumber = 321;

// Create a Serializer instance for the specified class with provided entity id and schema fields
const serializer = new Serializer<TestEntity>(entityId, schemaFields);

// Serialize the changes into a byte array
const changes: Uint8Array = serializer.serializeChanges(currentEntity, previousEntity);

// Deserialize the changes back into an object
const deserializedEntity = serializer.deserializeChanges(changes, previousEntity);

console.log(deserializedEntity.propertyName); // Output: Name
console.log(deserializedEntity.propertyNumber); // Output: 321

Package Sidebar

Install

npm i @barchart/binary-serializer-ts

Weekly Downloads

230

Version

1.1.3

License

MIT

Unpacked Size

274 kB

Total Files

214

Last publish

Collaborators

  • swiderberg
  • luka.sotra
  • bryan.ingle
  • borja.yanes
  • mark.kerman
  • l-zhang
  • eapikat
  • ddotlic
  • tomsisk
  • jmbaker
  • ravish.brahmbhatt
  • avasilevich
  • ebarchukov
  • alena.labada