elf_loader 0.16.0

A no_std-friendly ELF loader and runtime linker for Rust.
Documentation
//! Explicit linking and dependency-resolution primitives.
//!
//! This module provides building blocks for callers that want to resolve
//! `DT_NEEDED` edges without hard-coding a process-global loader policy.
//! `elf_loader` stays responsible for mapping and local relocation, while
//! callers decide how dependencies are discovered and how search scopes are
//! assembled. Use [`SearchPathResolver`] for the common filesystem-backed case,
//! or implement [`KeyResolver`] when dependencies come from custom registries,
//! memory blobs, package stores, or host-specific search rules.

mod context;
mod driver;
mod request;
mod resolve;
mod resolver;
mod run;
pub mod scan;
mod session;
mod storage;

pub use context::{DirectDeps, LinkContext};
pub use driver::{Linker, LoadResult};
pub use request::{
    DefaultRelocationPlanner, DependencyOwner, DependencyRequest, RelocationInputs,
    RelocationPlanner, RelocationRequest, RootRequest, VisibleModule, VisibleModules,
};
pub use resolver::{
    CandidateContext, CandidateRequest, FileNameKey, KeyResolver, KeyRule, PathKey, ResolvedKey,
    SearchDirProvider, SearchPathEntry, SearchPathResolver,
};
pub use run::LinkerRun;
pub use storage::{ContextId, KeyId, ModuleId};