Crate image4

source ·
Expand description

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

This library is currently in EXPERIMENTAL state. It’s very likely that the API changes in the future.

Usage

This library is based on the der crate. Decoding and encoding is based on the Decode and Encode traits.

An Image4 file may be decoded as follows:

use image4::{der::Decode, ImageRef, Tag};

let bytes = include_bytes!("../tests/data/test.img4");
let image = ImageRef::from_der(bytes)?;

assert_eq!(image.payload().tag(), Tag::from_bytes(*b"TEST"));

Supported formats

The library supports the following formats:

Additionally the new payload properties format (PAYP) is supported via the PayloadPropsRef and PayloadProps types, though it likely isn’t stored as a separate file.

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: enables the payload module.
  • manifest: enables the manifest module.
  • restore_info: enables the restore_info module.
  • image: enables the image module, 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.

All features are enabled by default.

Re-exports

Modules

  • imageimage
    Contains the ImageRef and Image types that represent an Image4 container (an IMG4 file).
  • manifestmanifest
    Contains the ManifestRef, Manifest types that both represent a signed Image4 manifest, their unsigned counterparts and supporting types.
  • payloadpayload
    Contains types used to parse and generate Image4 payload files (aka IM4P).
  • propertyproperty
    Contains everything needed to implement Image4 properties parsing.
  • restore_inforestore_info
    Contains the RestoreInfo type that represents Image4 restore info (an IM4R file).

Structs

  • A 4CC tag that is common in the Image4 format.

Type Definitions