CBOR.cr
Crystal bindings for libcbor.
Status
- [x] Serialization (
to_cbor
) - [ ] Deserialization (
from_cbor
) - [ ]
JSON.mapping
-style API - [ ] Nice error handling
- [ ] Unit tests
Installation
-
Make sure you have
libcbor
installed. Your package manager probably provides it. -
Add the dependency to your
shard.yml
:dependencies: CBOR: github: woodruffw/cbor.cr
-
Run
shards install
Usage
require "CBOR"
# Note: These print binary data!
puts -1.to_cbor
puts nil.to_cbor
puts true.to_cbor
puts 3.14.to_cbor
puts "abc".to_cbor
puts [1, 2, 3, "four"].to_cbor
puts Hash{"key" => "value"}.to_cbor
puts Time.now.to_cbor
CBOR.cr does not currently provide a mapping-style API, like the core JSON or YAML modules.
To serialize custom objects to CBOR, define #to_h
on them and use to_h.to_cbor
.
Contributing
- Fork it (https://github.com/woodruffw/CBOR/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Contributors
- William Woodruff - creator and maintainer