Automatically select suitable decoder from magic bytes or encoder from file extension. This library also provides I/O thread pool to perform decompression and compression in background threads.
default
, full
: Enable all features.gzip
: Enable gzipsnap
: Enable snappyzstd
: Enable Z-standardbzip2
: Enable bzip2lz4
: Enable LZ4xz
: Enable XZbrotli
: Enable Brotlithread
: Enable threaded I/O```rust use autocompress::open; use std::io::{self, Read};
fn main() -> io::Result<()> { let mut buffer = Vec::new(); open("testfiles/plain.txt.xz")?.readtoend(&mut buffer)?; assert_eq!(buffer, b"ABCDEFG\r\n1234567"); Ok(()) } ```
rust
use autocompress::{iothread::IoThread, open, create, CompressionLevel};
use std::io::{prelude::*, self};
fn main() -> io::Result<()> {
let thread_pool = IoThread::new(2);
let mut threaded_reader = thread_pool.open("testfiles/plain.txt.xz")?;
let mut threaded_writer = thread_pool.create("target/plain.txt.xz", CompressionLevel::Default)?;
let mut buffer = Vec::new();
threaded_reader.read_to_end(&mut buffer)?;
assert_eq!(buffer, b"ABCDEFG\r\n1234567");
threaded_writer.write_all(b"ABCDEFG\r\n1234567")?;
Ok(())
}