Skip to content

Support CBOR serialization #19

@VigneshVSV

Description

@VigneshVSV

CBOR - Concise Binary Object Representation, seems to be used to a good extent within the IoT community. Also the recommended serialization for CoAP.

From node-wot perspective, it was recommended by the community to try CBOR serializer for a faster-than-JSON serialization protocol.

Specifically, we already support per interaction affordance customisation of serialization & set the content type headers correctly for each interaction affordance. Normally, for low-size payloads, people may use JSON for readability, but other serialisations may be used for larger payloads.

Possible steps involved

  • Find a C/C++ supporting CBOR serialization implementation
  • Overload BaseSerializer and add dumps and loads methods, content type, type replacement registration, allowance for a separate hook which accepts types that are not by default serializable
  • do speed tests and compare with other serializers, there is some boiler plate code here. Especially numpy types must be considered. This is optional, but very useful if numbers can be added into the documentation at some point.
  • import of a CBOR serializer must be optional (i..e the dependency that provides this serilization format). If people want, they can explicity install this serilization. This should be added to documentation and as an optional dependency in pyproject.toml
  • add tests and docs

Metadata

Metadata

Assignees

No one assigned

    Labels

    beginnerbeginner level good first issues, usually issues that can worked on without skimming the whole repogood first issueGood for newcomers

    Projects

    Status

    Ready

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions