CBOR library for the Crystal language. Similar to the JSON-mapping implementation.
Go to file
Alberto Restifo 307da9658d Fix fractional unix timestamps handling 2020-04-24 22:46:07 +02:00
spec Fix fractional unix timestamps handling 2020-04-24 22:46:07 +02:00
src Fix fractional unix timestamps handling 2020-04-24 22:46:07 +02:00
.build.yml Work on lexer and diagnostic representation 2020-04-20 14:57:20 +02:00
.editorconfig Initialize library 2020-04-17 14:32:43 +02:00
.gitignore Initialize library 2020-04-17 14:32:43 +02:00
LICENSE Initialize library 2020-04-17 14:32:43 +02:00
README.md Document lack of half-precision float 2020-04-24 11:37:41 +02:00
shard.yml Add repository details 2020-04-19 14:05:27 +02:00

README.md

CBOR

builds.sr.ht status

This library implements the RFC7049: Concise Binary Object Representation (CBOR) in Crystal.

Features

  • Full support for diagnostic notation
  • Assign a field to a type base on the CBOR tag
  • Support for a wide range of IANA CBOR Tags

Limitations

Half-precision floating point is not supported

Crystal doesn't have a Float16 type, so half-precision floating point numbers are not supported for the time being.

If you know of a way to solve handle half-precision float, a contribution would be really appreciated.

Maximum Array/String array/Bytes array length

The spec allows for the maximum length of arrays, string arrays and bytes array to be a UInt64.

While this library supports lengths expressed as a UInt64, it must not exceed Int32::MAX.

Installation

  1. Add the dependency to your shard.yml:

    dependencies:
      cbor:
        git: https://git.sr.ht/~arestifo/crystal-cbor
    
  2. Run shards install

Usage

require "cbor"

TODO: Write usage instructions here

Development

TODO: Write development instructions here

Contributing

  1. Fork it (https://github.com/your-github-user/cbor/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors