7 releases
0.1.6 | Aug 23, 2020 |
---|---|
0.1.5 | Aug 20, 2020 |
#651 in Compression
Used in devpng
40KB
937 lines
DevKER
Exemple
- Easy to use.
use devker::prelude::{deflate, inflate, BlockType, Cache};
let mut cache = Cache::new();
let v = String::from("Hello world, this is a wonderful world !");
let v_in = v.into_bytes();
// Encode.
let encoded = deflate(&v_in, BlockType::Fixed, &mut cache);
// Decode.
let decoded = inflate(&encoded, &mut cache).unwrap();
assert_eq!(v_in, decoded);
- Reusable cache.
use devker::prelude::{deflate, inflate, BlockType, Cache};
let mut cache = Cache::new();
// First try.
let v = String::from("Hello world, this is a wonderful world !");
let v_in = v.into_bytes();
let encoded = deflate(&v_in, BlockType::Fixed, &mut cache);
let decoded = inflate(&encoded, &mut cache).unwrap();
assert_eq!(v_in, decoded);
// Another try.
let v = String::from("The cache can be reused !");
let v_in = v.into_bytes();
let encoded = deflate(&v_in, BlockType::Fixed, &mut cache);
let decoded = inflate(&encoded, &mut cache).unwrap();
assert_eq!(v_in, decoded);
Support
- Deflate/Inflate (Only fixed is supported for deflate)
- Zlib (Dictionaries isn't supported)
Note
For the moment, this crate is inspired by libflate.
Documentation
Installation
Add following lines to your Cargo.toml
:
[dependencies]
devker = "0"
Goal
In the future, this crate gathers most of the algorithms that I use for my projects.
The goal is to have performance and no dependency, in order to fully control the source code.