[](https://deps.rs/repo/github/alexkazik/exomizer)
[](https://crates.io/crates/exomizer)
[](https://crates.io/crates/exomizer)
[](https://github.com/alexkazik/exomizer/stargazers)
[](./LICENSE)
# crate exomizer
Exomizer is a program that compresses files in a way that tries to be as efficient as possible
but still allows them to be decompressed in environments where CPU speed and RAM are limited.
While the [original project](https://bitbucket.org/magli143/exomizer/wiki/Home) has a binary
which not only allows de-/crunching it is also capable to create self-extracting programs for
some popular 8-bit computers.
This library only supports de-/crunching in "raw" mode. There are two modules:
- original: Routines for de-/crunching, converted from the original C code.
Requires `alloc`.
- simple: Routines for decrunching only, also only a subset of all possible
parameters are supported (is `no_std`).
## Features
For original:
- `alloc` (default): enables the original routines.
- `std`: provides logging to io (incl. stdio) (you can write your own without it).
For simple:
- `clz` (default): enable the use of clz ([`usize::leading_zeros`](core::primitive::usize::leading_zeros)),
please diable if using simple and your cpu does not support it
(the function is always available but emulated on cpus which doesn't have it).
Unless `std` is activates the library is `no_std`.
### Usage
With defaults (`alloc` and `clz`):
```toml
[dependencies]
lzss = "0.5"
```
Without `alloc`:
```toml
[dependencies]
lzss = { version = "0.5", default-features = false, features = ["clz"] }
```