#http #reader #zip #range #cache #7z #7zip

nightly http_reader

带有缓存的HttpReader可用于ZipArchive、sevenz-rust等

3个不稳定版本

0.2.1 2023年12月8日
0.2.0 2023年12月6日
0.1.2 2023年6月14日
0.1.1 2023年6月9日
0.1.0 2023年6月6日

#399 in 压缩

LGPL-3.0

17KB
244

use http_reader::HttpReader;

fn main() -> std::io::Result<()> {

    //
    //  cargo add zip
    //
    let reader = HttpReader::new("http://192.168.0.102:9212/upgrade.zip")?;
    let mut archive = zip::read::ZipArchive::new(reader)?;
    let mut file = archive.by_name("rootfs.emmc")?;
    let mut fd = std::fs::File::create("./rootfs.emmc")?;
    std::io::copy(&mut file, &mut fd)?;

    //
    //  cargo add sevenz-rust
    //
    let reader = HttpReader::new_with_bufsize("http://192.168.0.143:9212/test.7z", 12*1024*1024)?;
    // sevenz_rust::decompress_with_extract_fn(reader, "output", sevenz_rust::default_entry_extract_fn).expect("complete");
    sevenz_rust::decompress(reader, "output").expect("complete");

    Ok(())
    }

依赖

~3–14MB
~194K SLoC