Skip to main content

Native Rust implementation of the Dev Containers CLI

Project description

devcontainer-rs

PyPI npm

This repository hosts a native Rust implementation of the Dev Containers CLI, with compatibility tracked against the pinned upstream TypeScript sources in upstream/ and the pinned specification assets in spec/.

The shipped runtime is the Rust binary in cmd/devcontainer. Node is kept only for lightweight compatibility tooling such as upstream/spec drift checks, generated compatibility inventories, and the parity smoke harness.

Repository layout

  • cmd/devcontainer/: native Rust CLI crate.
  • cmd/devcontainer/src/runtime/: native runtime subsystems for container-backed commands.
  • acceptance/: repo-owned manual acceptance scenarios and suite manifest.
  • upstream/: canonical upstream devcontainers/cli baseline.
  • spec/: canonical upstream devcontainers/spec schemas and docs.
  • build/: repo-owned compatibility guard scripts.
  • src/test/parity/: parity fixtures and golden files for repo-owned checks.
  • docs/: contributor and release documentation for the native CLI.

Compatibility contract: this repository targets the exact submodule revision pinned at HEAD:upstream.

Specification contract: schema-sensitive behavior targets the exact submodule revision pinned at HEAD:spec.

Submodules

Initialize submodules before running checks or editing compatibility-sensitive code:

git submodule update --init --recursive

If upstream/ or spec/ is missing or uninitialized, run the same command again and rerun the checks.

Local development

Rust validation:

cargo fmt --manifest-path cmd/devcontainer/Cargo.toml --all -- --check
cargo clippy --manifest-path cmd/devcontainer/Cargo.toml -- -D warnings
cargo test --manifest-path cmd/devcontainer/Cargo.toml

Compatibility/tooling validation:

npm test

Manual acceptance suite shape:

make acceptance-fixtures-check

The Node-based checks do not require installing project dependencies; they use built-in Node modules only. Node 20+ is still required to run them.

Install surfaces:

npx devcontainer-rs --version
npx @devcontainer-rs/cli --version
uv tool install devcontainer-rs

Generated command reference:

npm run generate-cli-reference

Generated parity inventory:

npm run generate-parity-inventory

Enable the repository-managed pre-commit hook:

npm run install-git-hooks

Upstream and spec workflow

When updating upstream compatibility baselines:

git submodule update --init --recursive
git -C upstream fetch origin
git -C upstream checkout <new-upstream-commit>
git add upstream
git rev-parse HEAD:upstream
npm run check-upstream-submodule
npm run check-upstream-compatibility
npm run check-command-matrix
npm run check-parity-inventory
npm run check-parity-harness

When changing schema-sensitive behavior, also verify:

git rev-parse HEAD:spec
npm run check-spec-drift

If a pinned submodule revision changes, update the matching generated baseline files in docs/upstream/.

Contributor notes

  • Architecture, command flow, and runtime module ownership: docs/architecture.md
  • Generated command reference: docs/cli/command-reference.md
  • Generated parity inventory: docs/upstream/parity-inventory.md
  • Native distribution and release notes: docs/standalone/distribution.md
  • Runtime and compatibility guardrails: docs/standalone/cutover.md

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.

devcontainer_rs-0.0.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (923.0 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

devcontainer_rs-0.0.34-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (989.2 kB view details)

Uploaded Python 3manylinux: glibc 2.5+ x86-64

devcontainer_rs-0.0.34-py3-none-macosx_11_0_arm64.whl (834.2 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

devcontainer_rs-0.0.34-py3-none-macosx_10_12_x86_64.whl (886.7 kB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file devcontainer_rs-0.0.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: devcontainer_rs-0.0.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 923.0 kB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for devcontainer_rs-0.0.34-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ab7207db17815ca40032445487029ff83909ab0af57881dbd620e97213fce31
MD5 54547e0498dc65c2bfb5d61918ccada2
BLAKE2b-256 f8e76ed3d94cebff927294b1c1f9b29404f1fe9dc652c0d2b3148587f15800d3

See more details on using hashes here.

File details

Details for the file devcontainer_rs-0.0.34-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

  • Download URL: devcontainer_rs-0.0.34-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
  • Upload date:
  • Size: 989.2 kB
  • Tags: Python 3, manylinux: glibc 2.5+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for devcontainer_rs-0.0.34-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8389cb9f8b52a7d5bc3fe40cb079d3fd75f5ca1c8fb7386535feab98318e6e71
MD5 099bb734c48bb96b49cb76feb8ca06f0
BLAKE2b-256 8419b9054ea00d3fb86ec230593e09e49043e5da532eacdd5b681812df2e2fdd

See more details on using hashes here.

File details

Details for the file devcontainer_rs-0.0.34-py3-none-macosx_11_0_arm64.whl.

File metadata

  • Download URL: devcontainer_rs-0.0.34-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 834.2 kB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for devcontainer_rs-0.0.34-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 61eecbf759f26ab5a937df77f083d3689bf7bdbeef8b0754526f0a50e02cd512
MD5 72b1e30a352fdf576475a1c9bbf81123
BLAKE2b-256 7036e7d4da5f18d32729a4bc2e710a86d5269d64a65549e14d917e71ff103e5e

See more details on using hashes here.

File details

Details for the file devcontainer_rs-0.0.34-py3-none-macosx_10_12_x86_64.whl.

File metadata

  • Download URL: devcontainer_rs-0.0.34-py3-none-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 886.7 kB
  • Tags: Python 3, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for devcontainer_rs-0.0.34-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 761e595113417ca8f1c388831799918379ac76df901d5c910f412add3e78affb
MD5 1f8ede3bf08aa14f9c68e58c58a86931
BLAKE2b-256 dd0deae78b6e6527166c8697054236131b8255d89a5622e3fb3f15908910432a

See more details on using hashes here.

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