#parser-generator #im4p #im4m #im4r #iboot #img4 #no-alloc

no-std image4

A no_std-friendly library for parsing and generation of Image4 images written in pure Rust

7 releases (breaking)

0.7.0 Jul 7, 2023
0.6.0 Jun 15, 2023
0.5.0 May 31, 2023
0.4.0 May 23, 2023
0.1.0 May 9, 2023

#901 in Encoding


Used in image4-util

MIT/Apache

145KB
3K SLoC

image4-rs

Crate Documentation

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

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.

Dependencies

~0.7–1.4MB
~32K SLoC