cbor v1.5.0 Release Notes

Release Date: 2020-01-13 // almost 2 years ago
  • Highlights:

    • ➕ add extensive encoding options while maintaining backward compatibility
    • ➕ add four functions that return predefined and modifiable EncOptions
    • 👌 support for preferred serialization (encoding both integers and floating-point values to their smallest forms)
    • 👌 support for encoding float16 (IEEE 754 binary16), prior versions already supported decoding

    🔄 Changes include:

    • 🔋 Feature: Add funcs that return predefined encoding configs (commit b7b5733, e203b29)
      • CanonicalEncOptions() -- Canonical CBOR (RFC 7049)
      • CTAP2EncOptions() -- CTAP2 Canonical CBOR
      • CoreDetEncOptions() -- Core Deterministic Encoding
      • PreferredUnsortedEncOptions() - Preferred unsorted serialization
    • 🔋 Feature: Add ShortestFloat option for encoding (commit 29e78ee)
      • ShortestFloatNone (default)
      • ShortestFloat16
    • 🔋 Feature: Add NanConvertMode for encoding (commit 16c573c)
      • NaNConvertNone
      • NanConvert7e00
      • NanConvertQuiet
      • NaNConvertPreserveSignal
    • 🔋 Feature: Add InfConvertMode for encoding (commit 16c573c)
      • InfConvertNone
      • InfConvertFloat16
    • ♻️ Refactor and improve quality of code, docs, and tests

    Fuzzing reached 250+ million execs with Go 1.13 and an older version of our float16 library. The newer version of our float16 library does not contain coding changes but we restarted fuzzing anyway and will let it continue until it reaches 1+ billion execs.