All Projects → mvdan → Zstd

mvdan / Zstd

Licence: bsd-3-clause
Zstandard implementation in Wuffs

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Zstd

pyzstd
Python bindings to Zstandard (zstd) compression library, the API is similar to Python's bz2/lzma/zlib modules.
Stars: ✭ 4 (-96.26%)
Mutual labels:  zstd
EasyCompressor
⚡ A compression library that implements many compression algorithms such as LZ4, Zstd, LZMA, Snappy, Brotli, GZip, and Deflate. It helps you to improve performance by reducing Memory Usage and Network Traffic for caching.
Stars: ✭ 167 (+56.07%)
Mutual labels:  zstd
Pgbackrest
Reliable PostgreSQL Backup & Restore
Stars: ✭ 766 (+615.89%)
Mutual labels:  zstd
nim zstd
Nim bindings for zstd
Stars: ✭ 28 (-73.83%)
Mutual labels:  zstd
sqlite zstd vfs
SQLite3 extension for read/write storage compression with Zstandard
Stars: ✭ 42 (-60.75%)
Mutual labels:  zstd
Linux
XanMod: Linux kernel source code tree
Stars: ✭ 310 (+189.72%)
Mutual labels:  zstd
zstd-rs
zstd-decoder in pure rust
Stars: ✭ 148 (+38.32%)
Mutual labels:  zstd
Zstd Nginx Module
Nginx modules for the Zstandard compression
Stars: ✭ 64 (-40.19%)
Mutual labels:  zstd
pyrus-cramjam
Thin Python wrapper to de/compression algorithms in Rust - lightweight & no dependencies
Stars: ✭ 40 (-62.62%)
Mutual labels:  zstd
Lzbench
lzbench is an in-memory benchmark of open-source LZ77/LZSS/LZMA compressors
Stars: ✭ 490 (+357.94%)
Mutual labels:  zstd
zstdmt
Multithreading Library for Brotli, Lizard, LZ4, LZ5, Snappy and Zstandard
Stars: ✭ 107 (+0%)
Mutual labels:  zstd
ratarmount
Random Access Read-Only Tar Mount
Stars: ✭ 217 (+102.8%)
Mutual labels:  zstd
Lizard
Lizard (formerly LZ5) is an efficient compressor with very fast decompression. It achieves compression ratio that is comparable to zip/zlib and zstd/brotli (at low and medium compression levels) at decompression speed of 1000 MB/s and faster.
Stars: ✭ 408 (+281.31%)
Mutual labels:  zstd
wget-lua
Wget-AT is a modern Wget with Lua hooks, Zstandard (+dictionary) WARC compression and URL-agnostic deduplication.
Stars: ✭ 52 (-51.4%)
Mutual labels:  zstd
Django Compression Middleware
Django middleware to compress responses using several algorithms.
Stars: ✭ 23 (-78.5%)
Mutual labels:  zstd
zstd-ruby
Ruby binding for zstd(Zstandard - Fast real-time compression algorithm)
Stars: ✭ 45 (-57.94%)
Mutual labels:  zstd
Gozstd
go wrapper for zstd
Stars: ✭ 275 (+157.01%)
Mutual labels:  zstd
Squashfs Tools Ng
A new set of tools and libraries for working with SquashFS images
Stars: ✭ 76 (-28.97%)
Mutual labels:  zstd
Hs Zstd
Bindings to the Zstandard library to make it usable from the Haskell programming language.
Stars: ✭ 45 (-57.94%)
Mutual labels:  zstd
Dwarfs
A fast high compression read-only file system
Stars: ✭ 444 (+314.95%)
Mutual labels:  zstd

zstd

An implementation from scratch of Zstandard in Wuffs. It is being developed following the published spec.

This is very much a work in progress, so it is not ready for use.

To build a simple zstd binary that will use stdin and stdout:

./build

And to test it with the input/output cases in testdata:

./test

Why?

Writing a decoder in Wuffs takes more time, but the end result is an implementation that is safe and can be used in many languages without linking against C.

For example, that would mean no cgo overhead with Go, and safer code for languages like Rust. Though that is somewhere in the future - see the roadmap.

If you're after a zstd implementation that works today, use https://github.com/DataDog/zstd.

Roadmap

This is the current progress of the decoder.

  • [x] Zstandard frames
    • [x] Raw blocks
    • [x] RLE blocks
    • [ ] Compressed blocks
      • [ ] Literals section
        • [ ] Raw literals block
        • [ ] RLE literals block
        • [ ] Compressed literals block
        • [ ] Treeless literals block
      • [ ] Sequences section
        • [ ] Predefined mode
        • [ ] RLE mode
        • [ ] Repeat mode
        • [ ] FSE compression mode
      • [ ] Sequence execution
        • [ ] Repeat offsets
        • [ ] Other offsets
    • [ ] XXH64 frame content checksum
  • [x] Skippable frames
  • [ ] Dictionaries

These items are required for a stable 1.0 release:

  • [ ] Wuffs 1.0 release
  • [ ] Go support in Wuffs (generating a Go zstd library)
  • [ ] Full zstd decoder implemented
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].