Instant tools. Instant builds. One command.
Project description
soldr
Instant tools. Instant builds. One command.
soldr = crgx + zccache in a single tool.
In soldering, flux removes the oxide so the joint bonds clean. soldr removes the friction between you and your build: no waiting for tool installs, no waiting for recompilation.
The point of soldr is not to invent some brand-new primitive. The point is to combine the pieces that already work into one tool that people can actually rely on every day.
zccache is already excellent. crgx already proved the value of instant Rust tooling. soldr turns those into one front door:
- get the right Rust tool for the job
- get the right Windows ABI without thinking about it
- get transparent compilation caching without separate setup
That is the same reason uv is compelling. uv did not win because it invented packaging, virtual environments, or Python installation. It won because it made the whole workflow feel like one tool instead of a pile of separate ones.
soldr aims for the same outcome in the Rust toolchain world.
Current release line:
0.5.xis the secure front-door and tool-fetch release line1.0.0-rcis reserved for the point where the zccache-style compilation cache is actually integrated
Why soldr exists
On Windows, the real problem is not "how do I cache builds?" or "how do I download a tool binary?" in isolation.
The real problem is that the execution path is messy:
- the wrong
cargocan win onPATH - the wrong Windows target can get selected
- GNU can leak in where MSVC should have been used
- users end up debugging their toolchain instead of shipping code
soldr exists to make that path boring.
When you run soldr, the tool should do the obvious thing:
- pick MSVC on Windows by default
- fetch the tool you asked for
- cache it locally
- prepare the front door that will eventually carry zccache-style transparent
rustccaching without manual wrapper setup
If soldr solves that one problem well, it becomes a super tool: the command you reach for first, because it makes the rest of the stack behave.
-
Tool acquisition (the crgx half): Need
maturin,cargo-dylint, or any crate binary? soldr fetches a pre-built binary from GitHub Releases in seconds. Nocargo installfrom source. Cached locally for instant reuse. -
Compilation caching (the zccache half): planned, but not integrated yet in the current
0.5.xline.
# Build through soldr's front door:
soldr cargo build --release
soldr cargo test
# Fetch and run any Rust tool instantly:
soldr maturin build --release
soldr cargo-dylint check
soldr rustfmt src/main.rs
How it works
soldr cargo build --release
+-- resolve the real cargo binary
+-- wire soldr's wrapper path internally
+-- delegate to cargo with your existing flags
soldr maturin build --release
+-- maturin cached? --> run instantly
+-- not cached? --> download pre-built binary (2s) --> run
Design goals
- One obvious command: Fetch tools, pick the right Windows target, and eventually enable build caching through the same entry point.
- Front-door builds:
soldr cargo ...is the primary build UX. - Invisible caching: the wrapper plumbing exists now; actual compilation cache behavior is still future work.
- One cache: Tools and compilation artifacts in a single
~/.soldr/directory. - Pre-built first: Download a pre-built binary before compiling from source. Fall back gracefully.
- Cargo-compatible: soldr preserves normal cargo arguments instead of forcing a separate workflow.
- Cross-platform: Linux, macOS, Windows (x86_64 + aarch64).
- MSVC by default on Windows: Always targets
x86_64-pc-windows-msvc(oraarch64-pc-windows-msvc) unless the active project explicitly selects another target in.cargo/config.toml,.cargo/config, orrust-toolchain.toml. MSVC links againstvcruntime140.dllwhich ships with every modern Windows install. The GNU target requires shippinglibgcc_s_seh-1.dllandlibwinpthread-1.dllwith every binary, which is extra baggage for no benefit. This matches the Rust ecosystem default: rustup, cargo-binstall, and nearly all published release binaries target MSVC. crgx gets this wrong by baking the target at compile time, causing it to look for GNU binaries when compiled under MSYS2.
Architecture
soldr/
|-- crates/
| |-- soldr-core/ # Shared types, config, cache directory layout
| |-- soldr-fetch/ # Binary resolution + download (the crgx half)
| |-- soldr-cache/ # Compilation caching (the zccache half)
| `-- soldr-cli/ # CLI entry point + daemon
|-- src/soldr/ # Python package (maturin bin bindings)
`-- tests/
| Crate | Role |
|---|---|
soldr-core |
Cache paths, config, version types |
soldr-fetch |
Resolve crate binaries from binstall metadata, GitHub Releases, QuickInstall. Download, verify, cache. |
soldr-cache |
Reserved for the future compilation-cache implementation; not yet integrated in the current release line. |
soldr-cli |
Mode detection, cargo front door, built-in commands (status, clean, config), tool fetch dispatch. |
Prior art
Built on lessons from:
- zccache - 2.4x faster warm builds than sccache (benchmark)
- crgx - the npx of Rust, instant tool execution
- cargo-binstall - pre-built binary resolution
- sccache - the original Rust compilation cache
Security And Verification
- SECURITY.md describes the current hardening posture and release policy.
- RELEASE.md documents the intended maximum-security release setup and owner workflow.
- docs/RELEASE_VERIFICATION.md explains how to verify published release artifacts.
- docs/TRUST_BOUNDARIES.md inventories the external systems and artifacts
soldrcurrently trusts.
License
BSD-3-Clause
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file soldr-0.5.0-py3-none-win_arm64.whl.
File metadata
- Download URL: soldr-0.5.0-py3-none-win_arm64.whl
- Upload date:
- Size: 2.3 MB
- Tags: Python 3, Windows ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e26d97bffa18a2afc954af5216a513bc0b785ee6e098a180f665efeb62131ea6
|
|
| MD5 |
94398f847242e5a809b87c5d7a1a1807
|
|
| BLAKE2b-256 |
2474c63bb54a6ef89e95d957711aa08cdae05408d66a1875a85a5eef75bc6d68
|
Provenance
The following attestation bundles were made for soldr-0.5.0-py3-none-win_arm64.whl:
Publisher:
release.yml on zackees/soldr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soldr-0.5.0-py3-none-win_arm64.whl -
Subject digest:
e26d97bffa18a2afc954af5216a513bc0b785ee6e098a180f665efeb62131ea6 - Sigstore transparency entry: 1292680536
- Sigstore integration time:
-
Permalink:
zackees/soldr@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Branch / Tag:
refs/heads/release - Owner: https://github.com/zackees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file soldr-0.5.0-py3-none-win_amd64.whl.
File metadata
- Download URL: soldr-0.5.0-py3-none-win_amd64.whl
- Upload date:
- Size: 2.4 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6b0c789d43c317ddea18db0dcb88a45c5cad679f0bf1b4a5b606408187dc4ab2
|
|
| MD5 |
c67fdaf47c5bd04f0f075271b45163a4
|
|
| BLAKE2b-256 |
e3d81dc02e4f96fc21b85cc4b8e5010c0280830557f24b43d8969f74f3c0776b
|
Provenance
The following attestation bundles were made for soldr-0.5.0-py3-none-win_amd64.whl:
Publisher:
release.yml on zackees/soldr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soldr-0.5.0-py3-none-win_amd64.whl -
Subject digest:
6b0c789d43c317ddea18db0dcb88a45c5cad679f0bf1b4a5b606408187dc4ab2 - Sigstore transparency entry: 1292680562
- Sigstore integration time:
-
Permalink:
zackees/soldr@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Branch / Tag:
refs/heads/release - Owner: https://github.com/zackees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file soldr-0.5.0-py3-none-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: soldr-0.5.0-py3-none-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36ce0c5da357ac1aa9977bf134d8ace86248697da42365a52ea05679b12648f8
|
|
| MD5 |
a57d02c1edf955a819d0a6f63724258f
|
|
| BLAKE2b-256 |
ffb82e61a686b7b184bd4415df7c9b1c784efd0e336c9f6b689ec0b4a48ee846
|
Provenance
The following attestation bundles were made for soldr-0.5.0-py3-none-manylinux_2_39_x86_64.whl:
Publisher:
release.yml on zackees/soldr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soldr-0.5.0-py3-none-manylinux_2_39_x86_64.whl -
Subject digest:
36ce0c5da357ac1aa9977bf134d8ace86248697da42365a52ea05679b12648f8 - Sigstore transparency entry: 1292680718
- Sigstore integration time:
-
Permalink:
zackees/soldr@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Branch / Tag:
refs/heads/release - Owner: https://github.com/zackees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file soldr-0.5.0-py3-none-manylinux_2_39_aarch64.whl.
File metadata
- Download URL: soldr-0.5.0-py3-none-manylinux_2_39_aarch64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, manylinux: glibc 2.39+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3582eda6366b10da646c551942107f87e5c2e70c12ef67f8690485707ba6b2fb
|
|
| MD5 |
95a5a223962a2c8a24a409c9b0b3dc0a
|
|
| BLAKE2b-256 |
5798c7ee1559cb0bb5ca60e3677133c63da134d1e482d52c9d46407964de4153
|
Provenance
The following attestation bundles were made for soldr-0.5.0-py3-none-manylinux_2_39_aarch64.whl:
Publisher:
release.yml on zackees/soldr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soldr-0.5.0-py3-none-manylinux_2_39_aarch64.whl -
Subject digest:
3582eda6366b10da646c551942107f87e5c2e70c12ef67f8690485707ba6b2fb - Sigstore transparency entry: 1292680641
- Sigstore integration time:
-
Permalink:
zackees/soldr@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Branch / Tag:
refs/heads/release - Owner: https://github.com/zackees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file soldr-0.5.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: soldr-0.5.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1040d735d9576187dce1ca231847ff96f425ad887db42714bb371d3c4e367b19
|
|
| MD5 |
50faedb4ad62de79fa7ade18fae53c6b
|
|
| BLAKE2b-256 |
69e4c51823b357bbf3dae8336cfeda3f0fa983ea0b5790a2464278f64faa8123
|
Provenance
The following attestation bundles were made for soldr-0.5.0-py3-none-macosx_11_0_arm64.whl:
Publisher:
release.yml on zackees/soldr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soldr-0.5.0-py3-none-macosx_11_0_arm64.whl -
Subject digest:
1040d735d9576187dce1ca231847ff96f425ad887db42714bb371d3c4e367b19 - Sigstore transparency entry: 1292680596
- Sigstore integration time:
-
Permalink:
zackees/soldr@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Branch / Tag:
refs/heads/release - Owner: https://github.com/zackees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file soldr-0.5.0-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: soldr-0.5.0-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f4fb03616e2133fd06bd47eb4c2355650e592b8e88913661a81ffc9d20b4ddb
|
|
| MD5 |
a601713bb2c9922a6510cd3fde6a7b66
|
|
| BLAKE2b-256 |
7dfc1cd0f6a8149c1e94c7febe31c1e94523c76c052b11ee3158b4596fb3c2e2
|
Provenance
The following attestation bundles were made for soldr-0.5.0-py3-none-macosx_10_12_x86_64.whl:
Publisher:
release.yml on zackees/soldr
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
soldr-0.5.0-py3-none-macosx_10_12_x86_64.whl -
Subject digest:
6f4fb03616e2133fd06bd47eb4c2355650e592b8e88913661a81ffc9d20b4ddb - Sigstore transparency entry: 1292680687
- Sigstore integration time:
-
Permalink:
zackees/soldr@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Branch / Tag:
refs/heads/release - Owner: https://github.com/zackees
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@89a46a15b455c84dcce734c58b424280b4c82aa9 -
Trigger Event:
workflow_dispatch
-
Statement type: