Skip to content

Various DRISL features #698

@makew0rld

Description

@makew0rld

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions