#image-compression #split #parts #async

bin+lib ciso

Library for CISO image compression and decompression

3 unstable releases

0.2.1 Mar 11, 2024
0.2.0 Dec 28, 2023
0.1.0 Sep 7, 2023

#333 in Compression

39 downloads per month
Used in 2 crates

MIT AND BSD-3-Clause

27KB
650 lines

CISO Library

This is a Rust ciso compression library. Reference compression and decompression tools are provided.

Binaries

The library contains two binaries, ciso and unciso that compress and decompress provided images respectively.

The compression tool splits images at about the 4GB boundary. The decompression tool supports both split and non-split images. Passing an image with extension .1.cso will discover all other parts in sequence.

Library

Compression and Decompression

The ciso::write::write_ciso_data function can be used to compress data. lz4-flex is used to compress blocks. Currently, only a sector size of 2048 is supported.

The ciso::read::CSOReader struct can be used to read from compressed data.

Split Files

The ciso::split module has wrappers for handling split files for both reading and writing. For a reference of how to use them, see the provided binaries.

Features

The tokio feature is used for the binaries and can be safely disabled. If you use the library, you should use default-features = false.

The sync feature removes the async qualifier on all functions and traits. If you need to use the library without async, you can use this feature.

Dependencies

~2.8–8.5MB
~74K SLoC