9 stable releases

2.0.4 Jan 16, 2022
2.0.2 Apr 23, 2021
1.0.3 Apr 18, 2021
0.1.0 Apr 18, 2021

#471 in Compression

33 downloads per month
Used in twtar

MIT/Apache

9KB
166 lines

egzreader

Crates.io Documentation License

Read gzip/non-gzip stream easily in Rust.

Installation

# Cargo.toml
[dependencies]
egzreader = "2"

Example

use std::io::prelude::*;
use std::io;
use std::fs::File;
use egzreader::EgzReader;

fn read_hello() -> io::Result<()> {
    // text file
    let mut r1 = EgzReader::new(
        File::open("examples/hello.txt")?
    );
    // gzip encoded text file
    let mut r2 = EgzReader::new(
        File::open("examples/hello.txt.gz")?
    );

    let mut s1 = String::new();
    let mut s2 = String::new();

    r1.read_to_string(&mut s1)?;
    r2.read_to_string(&mut s2)?;

    assert_eq!(s1, "Hello!");
    assert_eq!(s2, "Hello!");

    Ok(())
}

lib.rs:

Read gzip/non-gzip stream easily.

EgzReader decodes the underlying reader when it is gzipped stream, and reads as it is when non-gzipped.

Examples

use std::io::prelude::*;
use std::io;
use std::fs::File;
use egzreader::EgzReader;

fn read_hello() -> io::Result<()> {
    // text file
    let mut r1 = EgzReader::new(
        File::open("examples/hello.txt")?
    );
    // gzip encoded text file
    let mut r2 = EgzReader::new(
        File::open("examples/hello.txt.gz")?
    );

    let mut s1 = String::new();
    let mut s2 = String::new();

    r1.read_to_string(&mut s1)?;
    r2.read_to_string(&mut s2)?;

    assert_eq!(s1, "Hello!");
    assert_eq!(s2, "Hello!");

    Ok(())
}

Dependencies

~315KB