Skip to main content

Instant tools. Instant builds. One command.

Project description

soldr

Linux x64 Linux ARM64 Linux x64 musl Linux ARM64 musl macOS x64 macOS ARM64 Windows x64 Windows ARM64

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.x is the secure front-door, tool-fetch, and built-in zccache-backed cache release line
  • 1.0.0-rc remains reserved for broader release hardening and bootstrap validation
  • the supported external integration boundary remains the soldr executable, not the internal Rust crates; see docs/API_BOUNDARY.md

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 cargo can win on PATH
  • 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
  • fetch and manage zccache so Rust builds get transparent caching 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. No cargo install from source. Cached locally for instant reuse. On 0.5.x, this is still an upstream trust decision rather than a repo-side trust guarantee; see docs/TRUST_BOUNDARIES.md.

  • Compilation caching (the zccache half): soldr cargo ... now fetches and manages a pinned zccache release for Rust builds. soldr owns the zccache daemon/session wiring; zccache's artifact store still uses its current default cache root.

# Build through soldr's front door:
soldr cargo build --release
soldr cargo test
soldr --no-cache cargo test
SOLDR_RUSTC_WRAPPER=sccache soldr cargo build
SOLDR_RUSTC_WRAPPER=none soldr cargo build

# 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
  +-- fetch/start managed zccache when cache is enabled
  +-- set soldr as the compiler wrapper for this build
  +-- have soldr wrapper mode delegate to managed zccache
  +-- 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 run through managed zccache through the same entry point.
  • Front-door builds: soldr cargo ... is the primary build UX.
  • Invisible caching: soldr cargo ... uses a soldr-managed zccache by default, with soldr --no-cache cargo ... as the opt-out.
  • Real cache controls: soldr status, soldr cache, and soldr clean report and manage the soldr-managed zccache state instead of placeholder behavior.
  • One cache boundary, eventually: soldr keeps its own tools and zccache session state in ~/.soldr/. Current zccache artifacts still live in zccache's default cache root until upstream exposes a supported cache-dir override.
  • 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 (or aarch64-pc-windows-msvc) unless the active project explicitly selects another target in .cargo/config.toml, .cargo/config, or rust-toolchain.toml. MSVC links against vcruntime140.dll which ships with every modern Windows install. The GNU target requires shipping libgcc_s_seh-1.dll and libwinpthread-1.dll with 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 + wrapper mode
|-- src/soldr/           # Python package (maturin bin bindings)
`-- tests/
Crate Role
soldr-core Cache paths, config, version types
soldr-fetch Resolve crate binaries from crates.io metadata and GitHub Releases. Download and cache.
soldr-cache zccache integration helpers, cache policy, session plumbing.
soldr-cli Mode detection, cargo front door, built-in commands (status, clean, config, cache), tool fetch dispatch.

These workspace crates are implementation details. They are not a supported public Rust library API.

Prior art

Built on lessons from:

Security And Verification

  • SECURITY.md describes the current hardening posture and release policy.
  • docs/API_BOUNDARY.md defines the supported machine-facing integration boundary.
  • docs/PYPI_TRUSTED_PUBLISHING.md describes the optional Trusted Publishing path for hardened PyPI wheels.
  • .github/workflows/release-auto.yml is the only release workflow: when a reviewed version bump lands on main, it derives the version from Cargo.toml, reruns the release gate, and performs final publication through the release environment where the release credentials live.
  • 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 soldr currently trusts, including the current 0.5.x limits of runtime fetched-binary trust.

License

BSD-3-Clause

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

soldr-0.7.4-py3-none-win_arm64.whl (2.4 MB view details)

Uploaded Python 3Windows ARM64

soldr-0.7.4-py3-none-win_amd64.whl (2.6 MB view details)

Uploaded Python 3Windows x86-64

soldr-0.7.4-py3-none-manylinux_2_39_x86_64.whl (3.0 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ x86-64

soldr-0.7.4-py3-none-manylinux_2_39_aarch64.whl (2.9 MB view details)

Uploaded Python 3manylinux: glibc 2.39+ ARM64

soldr-0.7.4-py3-none-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

soldr-0.7.4-py3-none-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file soldr-0.7.4-py3-none-win_arm64.whl.

File metadata

  • Download URL: soldr-0.7.4-py3-none-win_arm64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for soldr-0.7.4-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 a14ec225f49cf83dfcc03433fe9a73cd51f3af2b422f3ac03f680624750a7d90
MD5 517bc753f5bb2dce7dbf74da274be419
BLAKE2b-256 8e35993057d64b2cce5bfc6d60099fbcbfabb8c7a5ca55559038ef66a54bb3fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for soldr-0.7.4-py3-none-win_arm64.whl:

Publisher: release-auto.yml on zackees/soldr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soldr-0.7.4-py3-none-win_amd64.whl.

File metadata

  • Download URL: soldr-0.7.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 2.6 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for soldr-0.7.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 3f60e73d8a4743720bfa5f87e9fd99e4afed4003a2d96b0883c29a5f8f75ff75
MD5 fc67621bad1b83d30649b87109e6d2e9
BLAKE2b-256 5426f860b15ac40a6c1fa16cc034aa3e92fabdf1482b12828ae2415c1a732b84

See more details on using hashes here.

Provenance

The following attestation bundles were made for soldr-0.7.4-py3-none-win_amd64.whl:

Publisher: release-auto.yml on zackees/soldr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soldr-0.7.4-py3-none-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for soldr-0.7.4-py3-none-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 beb757bf260e165e465083960006cf507bf45c99d7f6a467d35315ee9681d45a
MD5 60f74ec56ddb2a7afaa3b5b2ce92105f
BLAKE2b-256 8be96ba7a0b58488cf8eb58f721bf9e0ba777468c41928624b40f884389d415e

See more details on using hashes here.

Provenance

The following attestation bundles were made for soldr-0.7.4-py3-none-manylinux_2_39_x86_64.whl:

Publisher: release-auto.yml on zackees/soldr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soldr-0.7.4-py3-none-manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for soldr-0.7.4-py3-none-manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 2546c0a0f88db525d542817bd8905cd01d3f6332fb842d6e9f9ae7af07300106
MD5 030dd2abe65d315f3a2d43d01af58d35
BLAKE2b-256 b11498783007f6c7cb3df9c0d0662a0a00b882c7853b42b12e5367833dc3f45e

See more details on using hashes here.

Provenance

The following attestation bundles were made for soldr-0.7.4-py3-none-manylinux_2_39_aarch64.whl:

Publisher: release-auto.yml on zackees/soldr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soldr-0.7.4-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: soldr-0.7.4-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 2.7 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

Hashes for soldr-0.7.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c84c35ce7ebe8058a23e735a8bde70b297af4d421db8b916d08737ced306612a
MD5 c1cce3a4bbc69ffd5e3c9c9d60b0fb68
BLAKE2b-256 87697e934b078b9a10aa2e24eebdb3105e8c5d06737e05027f47eca223583026

See more details on using hashes here.

Provenance

The following attestation bundles were made for soldr-0.7.4-py3-none-macosx_11_0_arm64.whl:

Publisher: release-auto.yml on zackees/soldr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file soldr-0.7.4-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for soldr-0.7.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ff59a9fc4c0419cfd5ea7d88c0c6bfa7bd8d8315d56ee13a4fa400cff0595ee0
MD5 d877474b8a4ca2cc53166141c7c0c0d7
BLAKE2b-256 10ca3eea52ee622fb6fee3cf4d448c5d92f700e47d1a0f0d6839dd5b9dbfda8a

See more details on using hashes here.

Provenance

The following attestation bundles were made for soldr-0.7.4-py3-none-macosx_10_12_x86_64.whl:

Publisher: release-auto.yml on zackees/soldr

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page