helix-editor/helix
Dependencies
The Cargo workspace centralizes shared dependencies in [workspace.dependencies] of the root Cargo.toml. Per-crate Cargo.tomls pull from this table via dep.workspace = true.
Workspace-wide dependencies
From Cargo.toml:
| Dependency | Version | Purpose |
|---|---|---|
tree-house |
0.3 | Tree-sitter wrapper. The highlighter, query iteration, and language-config types live here since 25.07. Helix-maintained. |
nucleo |
0.5 | Fuzzy matcher for pickers. |
slotmap |
1.1 | ViewId, LanguageServerId, DebugAdapterId allocation. |
thiserror |
2.0 | Error enum derive macro. |
tempfile |
3.27 | Atomic save staging files, integration test workspaces. |
bitflags |
2.11 | Modifier (text styling) and Borders (TUI). |
unicode-segmentation |
1.13 | Grapheme iteration. |
ropey |
1.6 | The persistent rope. SIMD feature on. |
foldhash |
0.2 | Faster hasher than the default. |
parking_lot |
0.12 | Faster mutexes than std::sync. |
futures-executor |
0.3 | block_on outside the tokio runtime. |
futures-util |
0.3 | Stream / select utilities. |
tokio-stream |
0.1 | UnboundedReceiverStream and friends. |
toml |
1.1 | TOML parsing for config and languages.toml. |
termina |
0.3 | Modern Unix terminal backend. |
sonic-rs |
0.5 | Fast JSON parser used in helix-lsp and helix-dap. |
globset |
0.4 | File-type pattern matching. |
etcetera |
0.11 | XDG-compatible directory resolution. |
arc-swap |
1.9 | Lock-free reads of slowly-changing state. |
Notable per-crate dependencies
helix-term
tokio(multi-thread runtime) — primary async runtime.nucleo,ignore,grep-regex,grep-searcher,grep-matcher— picker and global search.pulldown-cmark— markdown rendering for hover popups.content_inspector— file-type detection.fern,chrono,log— logging.open— open URLs in the system browser.signal-hook,signal-hook-tokio(Unix),crossterm(Windows) — terminal events.termini— terminfo parsing for true-color detection.
helix-core
ropey— text buffer.tree-house— tree-sitter integration.regex,regex-cursor— regex over rope slices.smartstring—Tendril(small-string optimised text fragments).smallvec—SmallVec<[Range; 1]>for selections.unicode-general-category,unicode-segmentation,unicode-width— Unicode handling.chardetng— encoding detection.encoding_rs— encoding conversion.
helix-lsp / helix-dap
tokio(process, IO) — async child process management.serde_json,sonic-rs— JSON-RPC payloads.slotmap— ID allocation.
helix-vcs
gix— pure-Rust git implementation. Optional via thegitfeature.imara-diff— line-based diffing for hunks.
helix-loader
etcetera— XDG paths.cc— building tree-sitter grammars from source.
Feature flags
| Crate | Feature | Effect |
|---|---|---|
helix-term |
git (default) |
Enable helix-vcs/git — gix-based git backend. |
helix-term |
unicode-lines |
Extra Unicode line-break characters. |
helix-term |
integration |
Compile in integration test glue (sets up logging, switches to TestBackend). |
helix-event |
integration_test |
Test-only event utilities. |
helix-vcs |
git (default) |
Compile in the git provider. |
MSRV
The workspace targets Rust 1.90 (workspace.package.rust-version in Cargo.toml). The MSRV bump policy follows Firefox's:
Once Firefox's MSRV increases we may bump ours as well, but be sure to check that popular distributions like Ubuntu package the new MSRV version.
When increasing the MSRV, three places need updating:
workspace.package.rust-versioninCargo.toml.env.MSRVin.github/workflows/build.yml.toolchain.channelinrust-toolchain.toml.
Updates
Dependabot (.github/dependabot.yml) opens PRs for both Cargo deps and tree-sitter grammar revisions. Most are merged after CI passes; substantive bumps (tokio major versions, tree-house releases) get manual review.
See also
- Cargo.lock — pinned versions for reproducible builds.
docs/CONTRIBUTING.md— MSRV bump checklist.
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.