cbor_serialization

Flexible CBOR serialization not relying on run-time type information

Pure Nim score 30/100 · tests present · docs generated

Summary

Latest Version Unknown
License Apache License 2.0
CI Status Failing
Downloads 0
Last Indexed 2026-07-21 05:24

Installation

nimble install cbor_serialization
choosenim install cbor_serialization
git clone https://github.com/vacp2p/nim-cbor-serialization

OS Compatibility

Platform Linux macOS Windows FreeBSD OpenBSD NetBSD Android iOS WASM Embedded
cbor_serialization - - - - - -

Source

Repository https://github.com/vacp2p/nim-cbor-serialization
Homepage https://github.com/vacp2p/nim-cbor-serialization
Documentation View Documentation
Registry Source nimble_official

README

nim-cbor-serialization

License: Apache License: MIT Stability: experimental Github action

Introduction

nim-cbor-serialization is a library in the nim-serialization family for turning Nim objects into CBOR and back. Features include:

  • Efficient coding of CBOR directly to and from Nim data types
  • Full type-based customization of both encoding and decoding
  • Flavors for defining multiple CBOR serialization styles per Nim type
  • Efficient skipping of data items for partial CBOR parsing
  • Flexibility in mixing type-based and dynamic CBOR access
  • Structured CborValueRef node type for DOM-style access to parsed data
  • Flat CborBytes type for passing nested CBOR data between abstraction layers
  • RFC8949 spec compliance
  • Passes CBORTestVectors
  • Customizable parser strictness including support for non-standard extensions
  • Well-defined handling of malformed / malicious inputs with configurable parsing limits

Getting started

requires "cbor_serialization"

Create a type and use it to encode and decode CBOR:

import cbor_serialization

type Request = object
  cborrpc: string
  `method`: string

let encoded = Cbor.encode(Request(cborrpc: "2.0", `method`: "name"))
let decoded = Cbor.decode(encoded, Request)

echo decoded.cborrpc

Documentation

See the user guide.

Contributing

Contributions are welcome - please make sure to add test coverage for features and fixes!

cbor_serialization follows the Status Nim Style Guide.

License

Licensed and distributed under either of

  • MIT license: LICENSE-MIT or http://opensource.org/licenses/MIT

or

  • Apache License, Version 2.0, (LICENSE-APACHEv2 or http://www.apache.org/licenses/LICENSE-2.0)

at your option. These files may not be copied, modified, or distributed except according to those terms.