Skip to content
master
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time

README.md

CBOR encoder for Go

Decoder/encoder from Go data to CBOR binary string. This code has been developed and maintained by Ven at March 2014.

CBOR is an object representation format defined by the IETF. The specification has recently been approved as an IETF Standards-Track specification and has been published as RFC 7049.

Usage

package main

import (
	"fmt"
	"cbor"
	"bytes"
)
//custom struct
type Vector struct {
	X, Y, Z int
	Range []Range
	Label string
}

type Range struct {
	Length int
	Align float32
}

func main() {
	v := &Vector {
		X: 10,
		Y: 15,
		Z: 100,
		Range: []Range{
			Range {1,10},
			Range {223432423,30},
			Range {3,41.5},
			Range {174,55555.2},
		},
		Label: "HoHoHo",
	}

	//create encoder and marshal
	var buffTest bytes.Buffer
	encoder := cbor.NewEncoder(&buffTest)
	ok, error := encoder.Marshal(v)
	//check binary string
	if !ok {
		fmt.Errorf("Error decoding %s", error)
	} else {
		fmt.Printf("Variable Hex = % x\n", buffTest.Bytes())
		fmt.Printf("Variable = %v\n", buffTest.Bytes())
	}
	fmt.Printf("-----------------\n")

	//unmarshal binary string to new struct
	var vd Vector
	ok, err := encoder.Unmarshal(buffTest.Bytes(), &vd)

	if !ok {
		fmt.Printf("Error Unmarshal %s", err)
		return
	}
	//output
	fmt.Printf("%v", vd)
}

Compatibility

Checked with PHP extension in encode and decode

Known issues

  • Not support tags. 6 major type (in future)
  • Not support 16 floats encoding
  • Not decode nil (null) vars
  • Encode does't support indefinite-length values.

About

Golang library for working with cbor binary format

Resources

License

Releases

No releases published

Packages

No packages published

Languages

You can’t perform that action at this time.