Skip to content

Releases: weizhiao/Relink

v0.14.0 - Initial Release

06 Feb 08:38

Choose a tag to compare


🚀 v0.14.0 - Initial Release

Relink is a high-performance runtime linker (JIT Linker) tailor-made for the Rust ecosystem. It efficiently parses ELF formats and performs flexible dynamic and static hybrid linking.

🌟 Key Features

  • Memory Safety: Leverages Rust's lifetime system to ensure symbol safety and eliminate use-after-free risks.
  • Hybrid Linking: Supports loading and linking both Relocatable Objects (.o) and Dynamic Shared Objects (.so).
  • no_std Support: The core library has no OS dependencies, making it ideal for kernels, embedded systems, and bare-metal development.
  • Extreme Performance: Provides near-native symbol resolution speeds with support for Lazy Binding and RELR optimizations.

📦 Quick Start

Add this to your Cargo.toml:

[dependencies]
elf_loader = "0.14.0"

Simple loading example:

let lib = Loader::new()
    .load_dylib("plugin.so")?
    .relocator()
    .relocate()?;

// Safely retrieve and call a function
let func = unsafe { lib.get::<fn()>("hello")? };
func();

💬 Feedback

If you have any suggestions or encounter any bugs, please feel free to open an [Issue](https://github.com/weizhiao/Relink/issues)