Skip to content

v0.1.0

Compare
Choose a tag to compare
@x448 x448 released this 26 Nov 20:49
· 25 commits to master since this release
91a2767

Disco SenML initial release on Nov 24, 2019. Retagged on Nov 26, 2019 with updated README.md.

Disco SenML is a fork of cisco/senml that resolves various issues. Programs are 4 MB smaller, CBOR representation no longer violates RFC 8428, and all unit tests pass.

All features are the same as cisco/senml except MessagePack support is removed.

This project fixes open issues in cisco/senml (4d43ea8, Oct 10, 2019):

  • cisco/senml #2 (2016) "CBOR does not encode or decode numeric field names". (RFC 8428 violation)
  • cisco/senml #18 (2017) "Base Value and Base Sum missing from the model.
  • cisco/senml #22 (2019) "CBOR support uses go-codec which adds bloat to the binary.

There are no changes to core cisco/senml features except removal of MessagePack.

MessagePack was removed because it:

  • increased bloat (cisco/senml #22) and attack surface.
  • isn't mentioned in SenML RFC 8428.
  • prevented having a CBOR library (fxamacker/cbor) as the only external dependency.

Changes to cisco/senml (4d43ea8, Oct 10, 2019):

  • Compiled programs are each 4 MB smaller (senmlCat and senmlServer).
  • CBOR representation uses integers for labels, so it no longer violates SenML RFC 8428.
  • Missing Base Value and Base Sum are added to the model.
  • Fixed bad test data in unit tests and added new CBOR test using example from
    SenML RFC 8428 so all unit tests pass.
  • Removed MessagePack feature for reasons cited in README.md.
  • Replaced ugorji/go with fxamacker/cbor.
  • Use Go modules and have at least one tagged release.
  • Require Go 1.12
  • Added name to LICENSE.
  • Updated README.md with new name "Disco SenML"

Known limitations:

  • Go 1.12 or newer is required.
  • Security Audit: I didn't conduct a security audit of cisco/senml or this project. A security audit is recommended.
  • Code Review and Refactoring: I didn't perform any code review or refactoring beyond the bare minimum changes required to resolve cisco/senml issues 2, 18 and 22. Code review and refactoring is recommended.

Special thanks:

  • Cullen Jennings for his work on RFC 8428 and cisco/senml. He did the heavy lifting in those, so changes to cisco/senml are trivial by comparison.
  • Faye Amacker for adding requested features to her CBOR library that made this project easy.