hjkl-anvil 0.32.0

Mason-style LSP and developer-tool installer
Documentation

hjkl-anvil

Mason-style LSP and developer-tool installer

CI crates.io docs.rs MSRV License: MIT

Part of the hjkl monorepo — a vim-modal editor in Rust.

Overview

hjkl-anvil provides a self-contained tool-installation pipeline compatible with mason-org/mason-registry manifests. It supports GitHub release tarballs/zips, cargo install, npm install, pip install, and go install backends with SHA-256 verification, atomic rename + symlink finalization, and a .rev sidecar for version tracking.

Modules

  • manifest — parse and validate anvil.toml manifests (Manifest, ToolSpec, InstallMethod, ManifestError).
  • registry — in-process tool registry backed by the embedded anvil.toml (Registry, RegistryError).
  • store — XDG-aware path layout helpers and atomic rev sidecar read/write (RevSidecar, data_root, packages_dir, bin_dir, …).
  • installerInstall trait, per-backend pipelines, install_blocking dispatcher, path-traversal guard (safe_join), InstallStatus enum.
  • jobInstallPool (2-thread), InstallHandle, per-key deduplication.

Feature flags

Flag Description
sync Enables the sync-anvil maintainer binary that syncs the embedded anvil.toml from upstream mason-org releases. Not for downstream consumers.

Usage

[dependencies]
hjkl-anvil = "0.1"
use hjkl_anvil::{registry::Registry, installer::install_blocking};

let reg = Registry::embedded();
let tool = reg.get("lua-language-server").unwrap();
install_blocking(&tool).unwrap();

Documentation

docs.rs/hjkl-anvil

Contributing

See the monorepo CONTRIBUTING guide.

License

MIT — see LICENSE.