2 unstable releases

0.2.0 Dec 28, 2023
0.1.0 Sep 7, 2023

#212 in Compression

Download history 9/week @ 2023-11-06 36/week @ 2023-11-13 14/week @ 2023-11-20 28/week @ 2023-11-27 7/week @ 2023-12-04 14/week @ 2023-12-11 9/week @ 2023-12-18 70/week @ 2023-12-25 1/week @ 2024-01-01 5/week @ 2024-01-15 13/week @ 2024-01-22 3/week @ 2024-01-29 9/week @ 2024-02-05 42/week @ 2024-02-12 37/week @ 2024-02-19

93 downloads per month
Used in 2 crates

MIT AND BSD-3-Clause

649 lines

CISO Library

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


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.


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.


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.


~76K SLoC