Skip to content

Consider using Typed Binary schemas for describing packets #41

@mkapal

Description

@mkapal

As of now, every packet has its properties annotated by decorators according to their binary representation. For instance, an 8-bit unsigned integer is represented by the @byte() decorator. Each decorator holds a unique character which is then used when packing or unpacking binary data.

The downsides of this approach is that there is a lot of "magic" code inside the base Struct and Packet classes and several as typecasts, making the code less readable and maintainable.

The idea is to define a schema for each packet and have the type definition inferred from the schema. This can be done using the Typed Binary library: https://github.com/iwoplaza/typed-binary

It includes several binary schema types, a buffer writer and a reader to pack/unpack binary data into the schema structure.

So far it lacks all ArrayBuffer binary types like 16-bit integers or an unsigned 32-bit float. I've created an issue for it: iwoplaza/typed-binary#8

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions