Skip to content

canhlinh/go-binary-pack

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Go BinaryPack

BinaryPack is a simple Golang library which implements some functionality of Python's struct package.

This one is forked from BinaryPack with more supported pad byte type

Format characters

Format characters (some characters like H have been reserved for future implementation of unsigned numbers):

    ? - bool, packed size 1 byte
    b - int8, packed size 1 bytes
    B - uint8, packed size 1 bytes
    h - int16, packed size 2 bytes
    H - uint16, packed size 2 bytes
    i, l - int32, packed size 4 bytes
    I, L - int32, packed size 4 bytes
    q - int64, packed size 8 bytes
    Q - uint64, packed size 8 bytes
    f - float32, packed size 4 bytes
    d - float64, packed size 8 bytes
    Ns - string, packed size N bytes, N is a number of runes to pack/unpack

Install

go get github.com/roman-kachanovsky/go-binary-pack/binary-pack

How to use

// Prepare format (slice of strings)
format := []string{"I", "?", "d", "6s"}

// Prepare values to pack
values := []interface{}{4, true, 3.14, "Golang"}

// Create BinaryPack object
bp := new(BinaryPack)

// Pack values to []byte
data, err := bp.Pack(format, values)

// Unpack binary data to []interface{}
unpacked_values, err := bp.UnPack(format, data)

// You can calculate size of expected binary data by format
size, err := bp.CalcSize(format)

About

Golang implementation of Python's struct package

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 100.0%