[heft-native] Opt-in Rust front end and plan-driven Node host - #6098
Draft
Sean Larkin (TheLarkInn) wants to merge 1 commit into
Draft
Sean Larkin (TheLarkInn) wants to merge 1 commit into
Sean Larkin (TheLarkInn) wants to merge 1 commit into
Conversation
A std-only Rust binary in apps/heft-native. No dependencies, no Node bindings. Rust answers the CLI, config, rigs, plugin resolution, clean and builds that use only built-in copy/delete/set-env tasks. JS plugins run in a Node host that receives a plan (apps/heft/src/host). An opt-in warm host listens on a private Unix socket. heft --help: 413 ms -> 2.6 ms. Built-in-only build: 2.4 ms. First task with JS plugins: 85 ms cold, 26 ms warm (opt-in). Not a Rush project; rush install and rush build are unchanged. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Sep 25, 2026
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Opt-in native heft. Nothing changes for existing users.
Stacked on #6097, so this diff is the Rust work only. Full diff vs main: main...thelarkinn/heft-native-rust
Before → after
heft 1.3.1 → native binary. Same setup as the v2 PR.
heft --help,--version,<action> --help--helpWhat it is
apps/heft-native: a std-only Rust binary. No dependencies. No Node bindings. 838 KB.heft clean, and copy/delete/set-env builds.apps/heft/src/host). Rust execs node with the plan.HEFT_WARM_HOST=1keeps single-use hosts ready on a private Unix socket.Not disruptive
rush installandrush buildwork without cargo.@rushstack/heftdefaults and API reports unchanged.Try it
Limits
--debug,--verboseand config errors defer to JS heft.Experiment stacked on this: #6099 — Round 4 assembly/SIMD squeeze (SIMD JSON scans, SHA-NI, syscall cuts, static link).