Nim implementation of Snappy compression algorithm
Go to file
Jacek Sieka 1b3f8d60a8
Merge pull request #24 from status-im/snappy-refresh
bump cppsnappy, split out benchmark
2022-01-02 19:05:54 +01:00
.github/workflows windows-ci: bump mingw gcc from v8.1.0 to v11.2.0 2021-12-14 23:31:07 +07:00
snappy avoid unnecessary compression of short payloads 2021-12-14 23:18:34 +07:00
tests bump cppsnappy, split out benchmark 2021-12-30 13:33:27 +01:00
.appveyor.yml add github action script 2020-12-22 15:27:06 +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 fixes ci script 2020-12-22 12:34:07 +07:00
LICENSE initial commit 2018-11-02 12:10:58 +07:00
README.md CI: refactor Nim compiler caching 2021-06-01 04:05:29 +02:00
snappy.nim fix `appendSnappyBytes` index computation 2021-12-14 23:19:24 +07:00
snappy.nimble ensure benchmarks are built on test 2021-12-30 13:54:55 +01:00

README.md

Snappy

Build Status Build status nimble license Github action

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