wazabin-jstd 0.2.2

Typed identifiers, registries, graph containers with dominator/SESE analysis, string interning, and stable arenas
Documentation

wazabin-jstd

CI crates.io

Small, reusable Rust building blocks, extracted from a binary-analysis toolchain and kept dependency-light.

Developed by Thalium.

What's here

  • registry — strongly typed usize identifiers (#[derive(Identifier)]) and id-indexed registries, so a NodeId can never be passed where an EdgeId belongs.
  • graph — directed graph containers (borrowing and owning), plus graph::analysis: dominator and post-dominator trees, and canonical edge-based SESE (single-entry/single-exit) region decomposition.
  • stable_arena — an arena whose elements keep their address as it grows.
  • intern — string interning.
  • num_ref — small numeric reference helpers.

Graph layout

Triskel, the layered ("Sugiyama-style") graph layout engine, now lives in its own crate: wazabin-triskel. It builds on this crate's graph module.

Development

cargo test

The jstd_derive procedural macro is included in this repository and is used by the main crate.

License

Licensed under the MIT License.