Raku Land

CBOR::Simple

zef:japhb
Revision history for CBOR-Simple

0.1.0  2021-09-09
  [Breaking Changes]
  - Date objects (*not* DateTime) are now properly serialized as tag 100,
    instead of serializing them as a DateTime with zeroed time components

  [Docs]
  - Vastly expanded Pod/README docs, with several new sections
  - Support status details for every CBOR tag known to IANA

  [Tags]
  - Detection of invalid tag numbers
  - Support manual tag wrapping using CBOR::Simple::Tagged wrapper objects
  - Support delayed/lazy-decoding tags
    *    24: encoded CBOR value
    *    63: encoded CBOR Sequence
  - Support for several other new tags
    *    31: absent value
    *   100: Date expressed as days since epoch
    *   258: Set
    *   259: Map with object keys
    *   264: Decimal fraction with arbitrary exponent
    *   265: Bigfloat with arbitrary exponent
    *   275: Map with only string keys
    *  1004: Date expressed as yyyy-mm-dd string
    * 55800: Self-described CBOR Sequence

  [Tests]
  - Refactored common code
  - Improved encodes-to descriptions
  - Added malformed tests section for tag syntax/content requirements
  - Dropped perf-test script in favor of pointing users to serializer-perf


0.0.9  2021-06-07
  - Lots of small-to-medium performance improvements for *non-packed* data
  - Encode ±Inf and NaN as 16 bit floats if possible


0.0.8  2021-05-12
  - Partial support for RFC 8746 Typed Arrays tag
    * Common code and constants
    * Packed num arrays, both encode and decode
      (2+ orders of magnitude faster than unpacked Num arrays)
    * Fallback support for encoding intarrays that encodes as standard Arrays
  - Version dependency on TinyFloats


0.0.7  2021-05-02
  - Improve performance in many small (a few %) to medium (2x) ways,
    both for encoding and decoding


0.0.6  2021-04-29
  [Diagnostics]
  - Add cbor-diagnostic($cbor) routine to decode into text diagnostics
  - Add RFC 8949 Appendix A diagnostic tests

  [Tags]
  - Support decoding Decimal Fraction (4) and Bigfloat (5) tags
  - Support 'self-describing CBOR' tag (55799)
  - Switch epoch time tag (1) to decode as Instant

  [Docs]
  - Improve README


0.0.5  2021-04-26
  - Support parsing 16-bit floats, using the new TinyFloats module


0.0.4  2021-04-24
  - perf-test script added to tools/
  - More general performance optimization
  - Now requires nqp for nqp::istype (which sped type testing quite a bit)


0.0.3  2021-04-22
  - Low-hanging fruit performance optimizations
  - Enum and magic number reform
  - Minor tweaks


0.0.2  2021-04-21
  - Massive improvement; aside from num16, handles most core functionality


0.0.1  2021-04-20
  - Initial version, very incomplete