NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #3078 most downloaded on crates.io
Link-time initialized slices for Rust, with full support for Linux, macOS, Windows, WASM and many more platforms.
Last release 1 months ago
09 Aug 2026
Ships on a steady schedule
a new release about every 1 weeks
Most releases are documented
notes for 19 of 31 stable releases
Nothing withdrawn
no release was ever pulled
6 months old
31 releases · first in 2026
One column per month.
Ensure hashes always compute 64-bit chunks by @mmastrac in #508
crate_path and re-exports by @mmastrac in #514Full Changelog: link-section-0.19.2...link-section-0.19.3
linktime-proc-macro dependency to 0.2.3 (consistent 64-bit hash chunks
and cross-crate section-name fix).crate_path override and surfaced the generated attribute
reference (including crate_path) in the crate docs and README.const item is submitted to a reference
section: the item's cell lacked the fix-up slot the section-wide layout expects,
so materialisation read past the cell and could write through a garbage slot
pointer (https://github.com/mmastrac/linktime/pull/511).Bumped internal proc macro minimum version to pick up PR #495 (should not result in any downstream visible changes)
Full Changelog: link-section-0.19.1...link-section-0.19.2
linktime-proc-macro dependency to 0.2.1 (makes link-section names more stable).Fix for semicolons accidentally inserted in WASM expression macro (generates a warning on nightly).
…section-membership checks) instead. This is a breaking change.
read_custom_section host import is no longer required. Sections
are gathered in-module via .init_array.0 submissions and an .init_array.1
finalizer; the #[ctor] priority contract is unchanged.LinkCell<T> static (value
plus trailing list metadata) instead of a separate value static and cell.Ref::as_ptr and MovableRef::as_ptr are now pub(crate). They exposed raw
pointer plumbing that was never meant to be public API; use Deref (or
offset_of for section-membership checks) instead. This is a breaking change.Windows/COFF: section start/end pointers are now opacified with black_box, fixing a miscompile where an optimizing (LTO) build could prove a gathered
black_box,
fixing a miscompile where an optimizing (LTO) build could prove a gathered
slice (e.g. ScatteredSlice<&'static T>) reads as all-zero and fold it to
null values, crashing on use (0xC0000005). Fixes
#479.Empty sections are now automatically supported on all platforms other than AIX.
Fixed WASM import module for read_custom_section and atexit.
read_custom_section and atexit.proc_macro feature is now required for any non-unsafe section.
proc_macro feature is now required for any non-unsafe section.unsafe sections now generate a unique ID for the submission site which
allows multiple sections to share the same identifier.Fixed bug with submission of raw items to aux sections.
aux sections.Deprecated reference module in favor of Ref from the crate root.
MovableRef and Ref implement Debug and Display if the referenced type does.reference module in favor of Ref from the crate root.reference sections support access both as a slice and as a reference at the submission site on all platforms (including WASM).
reference sections support access both as a slice and as a reference at the
submission site on all platforms (including WASM).movable sections support reordering and back-reference updates during
startup initialization (allowing a "reference" to an item that may move during
initialization at the submission site).typed and mutable sections have been split: typed allows for const and
static items, while mutable allows for const items and as_mut_slice
access.#[section(typed)], #[section(untyped)],
#[section(mutable)], #[section(movable)], or #[section(reference)].#[section(untyped, aux(main = FN_ARRAY))]
pub static FN_BODIES: link_section::Section;
#[section(typed)]
pub static FN_ARRAY: link_section::TypedSection<fn()>;
#[in_section(FN_ARRAY)]
const _: fn() = linked_function;
#[in_section(FN_BODIES)]
pub fn linked_function() {
eprintln!("linked_function");
}
Repair MSRV breakage for WASM targets.
Support for AIX targets. Requires -C link-arg=-bdbgss (or a recent Rust version that sets this automatically).
-C link-arg=-bdbg:namedsects:ss (or a
recent Rust version that sets this automatically).Support for const items in link sections.
const items in link sections.const items, and uses ctor-like initialization to copy
data to a contiguous section. To access link-section slices in WASM in
constructor functions, make sure to use priority = 1.externs. Windows now uses a
non-zero-sized alignment marker to align the start and end of the section.
Other LLVM/GCC platforms use a u8.link-section is now no_std-compatible.WASM targets now use an extern read_custom_section function to read custom sections.
read_custom_section function to read custom
sections.Documentation polish and typo fixes.
used_linker feature moved to --cfg linktime_used_linker flag.
used_linker feature moved to --cfg linktime_used_linker flag.fn items are placed in a __TEXT,__text,regular,pure_instructions
section (fixes a linker warning in nightly).Nothing published for this version
Macro attributes and crate features are auto-documented.
Included licenses in all files.
link-section crate no longer offers const section pointers.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →