An open API service indexing awesome lists of open source software.

https://github.com/32bitkid/huffman

A simple Huffman decoder for golang
https://github.com/32bitkid/huffman

Last synced: 5 months ago
JSON representation

A simple Huffman decoder for golang

Awesome Lists containing this project

README

          

# huffman

Provides basic huffman decoder implemenation.

[![GoDoc](https://godoc.org/github.com/32bitkid/huffman?status.svg)](https://godoc.org/github.com/32bitkid/huffman)

## Installation

```bash
$ go get github.com/32bitkid/huffman
```

## Examples

```go
// 0xa5 => 0b 1 01 00 1 01 => True, False, Maybe, True, False

br := br.NewBitReader(bytes.NewReader([]byte{0xa5}))

decoder := huffman.NewBinaryTreeHuffmanDecoder(huffman.HuffmanTable{
"1": "True",
"01": "False",
"00": "Maybe",
})

for {
val, err := decoder.Decode(br)
if err != nil {
break
}
fmt.Println("%s", val)
}
```