11 unstable releases (3 breaking)

Uses new Rust 2024

new 0.5.4 Nov 12, 2025
0.5.3 Oct 24, 2025
0.4.3 Sep 29, 2025
0.4.0 Aug 24, 2025
0.2.1 Jul 22, 2025

#1946 in Embedded development

Download history 48/week @ 2025-07-16 91/week @ 2025-07-23 68/week @ 2025-08-06 180/week @ 2025-08-13 151/week @ 2025-08-20 23/week @ 2025-08-27 122/week @ 2025-09-03 10/week @ 2025-09-10 10/week @ 2025-09-17 99/week @ 2025-09-24 148/week @ 2025-10-01 346/week @ 2025-10-08 117/week @ 2025-10-15 167/week @ 2025-10-22 28/week @ 2025-10-29

763 downloads per month
Used in onerom-wasm

MIT license

320KB
7K SLoC

sdrr-fw-parser

Parses Software Defined Retro ROM (SDRR) firmware.

This is a no_std compatible library, which can be used in both std and no_std environments and can read and extract information from SDRR firmware - either from

  • a binary file
  • an ELF file
  • raw bytes, e.g. from bytes read directly from a device's flash or RAM

This is used directly within the SDRR repository, by:

  • sdrr-info - PC based tool to analyse SDRR firmware source code

It can also be used by external tools.

Typically used like this:

use sdrr_fw_parser::SdrrInfo;
let sdrr_info = SdrrInfo::from_firmware_bytes(
    SdrrFileType::Elf,
    &sdrr_info, // Reference to sdrr_info_t from firmware file
    &full_fw,   // Reference to full firmware data
    file_size   // Size of the full firmware file in bytes
);

sdrr-fw-parser

Crate to handle parsing an SDRR firmware image.

This can can be a .bin or .elf file - or could be the contents of an STM32's flash memory. It supports no_std environments, for adding to embedded applications, or std for use in PC-based tools.

A PC-based reference implementation is provided in the sdrr-info tool, which is used to parse and output the contents of a firmware image when you run make info or make info-detail.

A reference embedded implementation using this crate is Airfrog, which is a tiny $3 probe for ARM devices, that can be used to inspect the firmware and runtime state of the SDRR device, and change its configuration and ROM data - while it is serving ROMs.

Dependencies

~2.4–4MB
~83K SLoC