All Projects → image-rs → deflate-rs

image-rs / deflate-rs

Licence: Apache-2.0, MIT licenses found Licenses found Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
An implementation of a DEFLATE encoder in rust

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to deflate-rs

power-gzip
POWER9 gzip engine documentation and code samples
Stars: ✭ 16 (-65.96%)
Mutual labels:  compression, gzip, zlib, deflate
pyrus-cramjam
Thin Python wrapper to de/compression algorithms in Rust - lightweight & no dependencies
Stars: ✭ 40 (-14.89%)
Mutual labels:  compression, gzip, deflate
Turbobench
Compression Benchmark
Stars: ✭ 211 (+348.94%)
Mutual labels:  compression, gzip, zlib
zzlib
zlib-compressed file depacking library in Lua
Stars: ✭ 44 (-6.38%)
Mutual labels:  gzip, zlib, deflate
em inflate
Fast, small, in-memory inflate (zlib, deflate and gzip decompression)
Stars: ✭ 59 (+25.53%)
Mutual labels:  compression, gzip, zlib
python-isal
Faster zlib and gzip compatible compression and decompression by providing python bindings for the isa-l library.
Stars: ✭ 21 (-55.32%)
Mutual labels:  gzip, zlib, deflate
Datacompression
Swift libcompression wrapper as an extension for the Data type (GZIP, ZLIB, LZFSE, LZMA, LZ4, deflate, RFC-1950, RFC-1951, RFC-1952)
Stars: ✭ 191 (+306.38%)
Mutual labels:  compression, gzip, zlib
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 (+255.32%)
Mutual labels:  compression, gzip, deflate
Denoflate
WebAssembly powered Deflate/Gzip/Zlib compression for Deno, written in Rust
Stars: ✭ 80 (+70.21%)
Mutual labels:  compression, gzip, zlib
Zippy
Pure Nim implementation of deflate, zlib, gzip and zip.
Stars: ✭ 88 (+87.23%)
Mutual labels:  compression, gzip, zlib
Uzlib
Radically unbloated DEFLATE/zlib/gzip compression/decompression library. Can decompress any gzip/zlib data, and offers simplified compressor which produces gzip-compatible output, while requiring much less resources (and providing less compression ratio of course).
Stars: ✭ 168 (+257.45%)
Mutual labels:  compression, gzip, zlib
Compression
Node.js compression middleware
Stars: ✭ 2,506 (+5231.91%)
Mutual labels:  compression, gzip, deflate
decompress
Pure OCaml implementation of Zlib.
Stars: ✭ 103 (+119.15%)
Mutual labels:  compression, zlib, deflate
zlib
Compression and decompression in the gzip and zlib formats
Stars: ✭ 32 (-31.91%)
Mutual labels:  compression, gzip, zlib
http compression
🗜️ Deno HTTP compression middleware
Stars: ✭ 34 (-27.66%)
Mutual labels:  compression, gzip, deflate
Precomp Cpp
Precomp, C++ version - further compress already compressed files
Stars: ✭ 250 (+431.91%)
Mutual labels:  compression, zlib
restio
HTTP Client for Dart inspired by OkHttp
Stars: ✭ 46 (-2.13%)
Mutual labels:  gzip, deflate
ZipArchive
A single-class pure VB6 library for zip with ASM speed
Stars: ✭ 38 (-19.15%)
Mutual labels:  compression, zlib
compress
compress and uncompress for Deno
Stars: ✭ 29 (-38.3%)
Mutual labels:  gzip, deflate
mtscomp
Multichannel time series lossless compression in pure Python based on NumPy and zlib
Stars: ✭ 20 (-57.45%)
Mutual labels:  compression, zlib

deflate-rs

Crates.ioDocs

An implementation of a DEFLATE encoder in pure Rust. Not a direct port, but does take some inspiration from zlib, miniz and zopfli. The API is based on the one in the flate2 crate that contains bindings, zlib miniz_oxide, and miniz.

Deflate encoding with and without zlib and gzip metadata (zlib dictionaries are not supported) is supported. No unsafe code is used.

Encoding in gzip format requires enabling the 'gzip' feature.

This library is now mostly in maintenance mode, focus being on the Rust backend of flate2 instead.

The minimum required Rust version is 1.32.0 due to use of library functions for endinaness conversion (unit tests requires a newer version).

Usage:

Simple compression function:

use deflate::deflate_bytes;

let data = b"Some data";
let compressed = deflate_bytes(&data);

Using a writer:

use std::io::Write;

use deflate::Compression;
use deflate::write::ZlibEncoder;

let data = b"This is some test data";
let mut encoder = ZlibEncoder::new(Vec::new(), Compression::Default);
encoder.write_all(data).unwrap();
let compressed_data = encoder.finish().unwrap();

Other deflate/zlib Rust projects from various people

  • flate2 FLATE, Gzip, and Zlib bindings for Rust - can use miniz_oxide for a pure Rust implementation.
  • Zopfli in Rust Rust port of zopfli
  • inflate DEFLATE decoder implemented in Rust
  • miniz-oxide Port of miniz to Rust.
  • libflate Another DEFLATE/Zlib/Gzip encoder and decoder written in Rust. (Only does some very light compression).

License

deflate is distributed under the terms of both the MIT and Apache 2.0 licences.

bitstream.rs is © @nwin and was released under both MIT and Apache 2.0

Some code in length_encode.rs has been ported from the miniz library, which is public domain.

The test data (tests/pg11.txt) is borrowed from Project Gutenberg and is available under public domain, or the Project Gutenberg Licence

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].