ferrijs_std/compression/
mod.rs1#[cfg(any(feature = "zstd-c", feature = "zstd-rust"))]
6pub mod zstd {
7 use std::io::{BufReader, Read, Result};
8
9 use zstd::stream::read::{Decoder as ZstdDecoder, Encoder as ZstdEncoder};
10 pub use zstd::DEFAULT_COMPRESSION_LEVEL;
11
12 pub fn encoder<R: Read>(r: R, level: i32) -> Result<ZstdEncoder<'static, BufReader<R>>> {
13 ZstdEncoder::new(r, level)
14 }
15
16 pub fn decoder<R: Read>(r: R) -> Result<ZstdDecoder<'static, BufReader<R>>> {
17 ZstdDecoder::new(r)
18 }
19}
20
21#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
22pub mod deflate {
23 use std::io::Read;
24
25 use flate2::read::{DeflateDecoder, DeflateEncoder};
26 pub use flate2::Compression;
27
28 pub fn encoder<R: Read>(r: R, level: Compression) -> DeflateEncoder<R> {
29 DeflateEncoder::new(r, level)
30 }
31
32 pub fn decoder<R: Read>(r: R) -> DeflateDecoder<R> {
33 DeflateDecoder::new(r)
34 }
35}
36
37#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
38pub mod gz {
39 use std::io::Read;
40
41 use flate2::read::{GzDecoder, GzEncoder};
42 pub use flate2::Compression;
43
44 pub fn encoder<R: Read>(r: R, level: Compression) -> GzEncoder<R> {
45 GzEncoder::new(r, level)
46 }
47
48 pub fn decoder<R: Read>(r: R) -> GzDecoder<R> {
49 GzDecoder::new(r)
50 }
51}
52
53#[cfg(any(feature = "flate2-c", feature = "flate2-rust"))]
54pub mod zlib {
55 use std::io::Read;
56
57 use flate2::read::{ZlibDecoder, ZlibEncoder};
58 pub use flate2::Compression;
59
60 pub fn encoder<R: Read>(r: R, level: Compression) -> ZlibEncoder<R> {
61 ZlibEncoder::new(r, level)
62 }
63
64 pub fn decoder<R: Read>(r: R) -> ZlibDecoder<R> {
65 ZlibDecoder::new(r)
66 }
67}
68
69#[cfg(feature = "brotli-c")]
70pub mod brotli {
71 use std::io::BufRead;
72
73 use brotlic::{CompressorReader as BrotliEncoder, DecompressorReader as BrotliDecoder};
74
75 pub fn encoder<R: BufRead>(r: R) -> BrotliEncoder<R> {
76 BrotliEncoder::new(r)
77 }
78
79 pub fn decoder<R: BufRead>(r: R) -> BrotliDecoder<R> {
80 BrotliDecoder::new(r)
81 }
82}
83
84#[cfg(all(not(feature = "brotli-c"), feature = "brotli-rust"))]
85pub mod brotli {
86 use std::io::Read;
87
88 use brotli::{CompressorReader as BrotliEncoder, Decompressor as BrotliDecoder};
89
90 pub fn encoder<R: Read>(r: R) -> BrotliEncoder<R> {
91 BrotliEncoder::new(r, 8_096, 11, 22)
92 }
93
94 pub fn decoder<R: Read>(r: R) -> BrotliDecoder<R> {
95 BrotliDecoder::new(r, 8_096)
96 }
97}