v0.1.0
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.