2f8693ca34
The CBOR::Serializable macro implements a from_cbor method on any object on which it's included. |
||
---|---|---|
.vscode | ||
spec | ||
src | ||
.build.yml | ||
.editorconfig | ||
.gitignore | ||
LICENSE | ||
README.md | ||
shard.yml |
README.md
CBOR
This library implements the RFC7049: Concise Binary Object Representation (CBOR) in Crystal.
WARNING: This library is still a work in progress.
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 (see below)
Installation
-
Add the dependency to your
shard.yml
:dependencies: cbor: git: https://git.sr.ht/~arestifo/crystal-cbor
-
Run
shards install
Usage
require "cbor"
TODO: Write usage instructions here
Supported tags
All the tags specified in section 2.4 of RFC 7049 are supported and the values are encoded in the respective Crystal types:
Time
BigInt
BigDecimal
Limitations
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
.
Development
TODO: Write development instructions here
Contributing
The code is hosted on SourceHut and the development happens over the crystal-cbor mailing list.
-
For issues and feature requests, you can open and issue in the ticket tracker.
-
For code contributions You can send a patch to: ~arestifo/crystal-cbor@lists.sr.ht.
To learn how to use git send-email
, there is a great step-by-step tutorial
at git-send-email.io.
You might also want to read the mailing list etiquette.