cbor icon indicating copy to clipboard operation
cbor copied to clipboard

Various DRISL features

Open makew0rld opened this issue 4 months ago • 0 comments

Hello,

I am developing a library that implements the DRISL spec, formerly known as dag-cbor. To reach strict compliance with that spec, I had to fork this repo and add a number of features. I wanted to open this issue to get feedback on whether any of the features are upstreamable, rather than bombard you with multiple issues.

My fork is available here, however I know the patches are not ready for submission yet. If there is interest in any of these features I will improve their quality and submit a PR.

Features

  • Prevent decoding floats unless they are encoded as float64
  • Only encode 64-bit floats (converting other float types)
  • Prevent encoding of big nums while still accepting big.Int if it fits in a CBOR integer
  • Restrict map encoding to string keys
  • Don't decode null map keys or tagged map keys
  • Disable keyasint feature
  • Prevent encoding/decoding arbitrary simple values
  • Limit tag decoding to only those that have been provided in a TagSet
  • Only decode integers encoded with preferred encoding
  • Enforce map sort on decode
  • Don't encode time.Time at all
  • Limit integer range to int64 min/max (encode and decode)
  • Ban floats entirely

All features are behind an encode or decode option.

Let me know what you think of any of these!

makew0rld avatar Aug 18 '25 18:08 makew0rld