Nim implementation of Snappy compression algorithm
Go to file
jangko b10f16da7a
submoduling snappycpp
2020-12-22 12:17:39 +07:00
snappy fix unnecessary seq allocation 2020-08-26 15:52:15 +02:00
tests submoduling snappycpp 2020-12-22 12:17:39 +07:00
.appveyor.yml submoduling snappycpp 2020-12-22 12:17:39 +07:00
.gitattributes renormalize *.txt EOL 2020-04-01 22:35:57 +03:00
.gitignore submoduling snappycpp 2020-12-22 12:17:39 +07:00
.gitmodules submoduling snappycpp 2020-12-22 12:17:39 +07:00
.travis.yml submoduling snappycpp 2020-12-22 12:17:39 +07:00
LICENSE initial commit 2018-11-02 12:10:58 +07:00
README.md update CI badges 2019-08-24 18:35:53 +02:00
snappy.nim use stew/leb128 2020-12-15 17:07:58 +02:00
snappy.nimble Fix various integer overflow issues found through fuzzing 2020-08-18 23:11:42 +03:00

README.md

Snappy

Build Status Build status nimble license

Nim implementation of Snappy compression algorithm

Currently, this implementation only support block compression and no stream compression support at all.

API

  • proc encode*(src: openArray[byte]): seq[byte]
  • proc decode*(src: openArray[byte]): seq[byte]
  • template compress --- an alias to encode
  • template uncompress --- an alias to decode

Examples

import snappy
var source = readFile("readme.md")
var encoded = snappy.encode(toOpenArrayByte(source, 0, source.len-1))
var decoded = snappy.decode(encoded)
assert equalMem(decoded[0].addr, source[0].addr, source.len)

Installation via nimble

nimble install snappy