6 releases

0.1.6 Jan 27, 2024
0.1.5 Jan 27, 2024

#57 in macOS and iOS APIs


Used in editres_cli

MPL-2.0 license

10MB
80K SLoC

C++ 64K SLoC // 0.1% comments Python 10K SLoC // 0.1% comments Bitbake 3.5K SLoC // 0.0% comments Shell 1K SLoC // 0.1% comments C 619 SLoC // 0.0% comments Rust 492 SLoC // 0.1% comments JavaScript 443 SLoC // 0.1% comments Forge Config 41 SLoC Objective-C 34 SLoC GNU Style Assembly 17 SLoC

editres

crates.io

Embed data into executables after build.

Documentation

Supported Executable Formats

  • Windows (PE)
  • Linux (ELF)
  • macOS (Mach-O)

Quick Start

1. Declare resources using editres::resource!

use editres::resource;
use std::str::from_utf8;

# fn main() {
let res = resource!("my_res"); // Option<&'static [u8]>
if let Some(res) = res {
    println!("{}", from_utf8(res).unwrap());
} else {
    println!("my_res is not injected yet");
}
# }

2. Inject data in the executable

You can inject data in executables using library editres or command line from editres_cli.

  • Library usage:
    1. Add editres as a dependency with feature injector enabled,
    2. Refer to injector::inject.
  • Command line usage:
    1. cargo install editres_cli, or download from the releases.
    2. Get command line help using editres help inject

Notes

editres is based on Node.js' single executable application implementation: postject.

Dependencies

~0–23MB
~308K SLoC