# README
go-cbor-util
CBOR utilities for reading and writing objects to CBOR representation, optimizing for fast path serialization/deserialization generated by cbor-gen
Install
Install this library with go mod
Usage
Write an object to a stream in cbor
import (
cborutil "github.com/filecoin-project/go-cbor-util"
cbg "github.com/whyrusleeping/cbor-gen"
)
var w io.Writer
// some object type with cbg fastpath marshalling
var out cbg.CBORMarshaler
err := cborutil.WriteCborRPC(w, obj)
var slow interface{}
// will work but will be slower if slow does not support fast path marshalling
err := cborutil.WriteCborRPC(w, slow)
Read an object form a stream in cbor
import (
cborutil "github.com/filecoin-project/go-cbor-util"
cbg "github.com/whyrusleeping/cbor-gen"
)
var r io.Reader
// some object type with cbg fastpath marshalling
var out cbg.CBORUnmarshaler
err := cborutil.ReadCborRPC(r, obj)
var slow interface{}
// will work but will be slower if slow does not support fast path unmarshalling
err := cborutil.ReadCborRPC(r, slow)
Project-level documentation
The filecoin-project has a community repo that documents in more detail our policies and guidelines, such as discussion forums and chat rooms and Code of Conduct.
License
This repository is dual-licensed under Apache 2.0 and MIT terms.
Copyright 2019. Protocol Labs, Inc.
# Functions
AsIpld converts an object to an ipld.Node interface TODO: this is a bit ugly, and this package is not exactly the best place.
Dump returns the cbor bytes representation of an object.
Equals is true if two objects have the same cbor representation.
ReadCborRPC will read an object from the given io.Reader opting for fast path if possible.
WriteCborRPC with encode an object to cbor, opting for fast path if possible and then write it into the given io.Writer.
# Constants
Debug will produce more debugging messages.