# image4-rs [![Crate][crate-image]][crate-link] [![Documentation][docs-rs-image]][docs-rs-link] A `no_std`-friendly library for parsing and generation of Image4 images written in pure Rust. This library is currently in active development. The API is mostly complete, but some major changes are still expected. ## Features * `alloc`: enables owned versions of reference types, `alloc` support in `der` and decoding of Image4 properties. * `std`: implements `std::error::Error` trait on provided errors, enables `std` support in the [`der`] crate. * `payload`: adds support for Image4 payloads (IM4P files), requires the `property` feature. * `manifest`: adds support for Image4 manifests (IM4M files), requires the `property` feature. * `restore_info`: adds support for Image4 restore info (IM4R blobs). * `image`: adds support for full Image4 images, requires `payload`, `manifest` and `restore_info` features. * `serde`: implements (de)serialization for Image4 property lists. Useful for translating payload properties and manifest bodies to other formats and vice versa. Disabled by default. * `property`: adds support for Image4 property lists (enables the `property` module). These are an implementation detail of the Image4 format and usually shouldn't be used directly. * `signature`: Enables integration with the [`signature`] crate in `manifest` module, requires `manifest` feature. Disabled by default. * `x509-cert`: Enables integration with the [`x509-cert`] crate in `manifest` module, requires `manifest` and `alloc` features. Disabled by default. ## Minimum Supported Rust Version This crate requires at least **Rust 1.65**. An MSRV change will be accompanied by a minor version bump ## License Licensed under either of * Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) at your option. ## Contribution Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions. [crate-image]: https://img.shields.io/crates/v/image4.svg [crate-link]: https://crates.io/crates/image4 [docs-rs-image]: https://docs.rs/image4/badge.svg [docs-rs-link]: https://docs.rs/image4/ [`der`]: https://crates.io/crates/der [`signature`]: https://crates.io/crates/signature [`x509-cert`]: https://crates.io/crates/x509-cert