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.

Why

The main point of all this is to distribute a fat binary that implements dev containers without bringing in the whole node stack. In enterprise contexts this can be helpful.

Eventually we may also extend the upstream devcontainers/cli with additional functionality.

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.35-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (923.2 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

devcontainer_rs-0.0.35-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (987.1 kB view details)

Uploaded Python 3manylinux: glibc 2.5+ x86-64

devcontainer_rs-0.0.35-py3-none-macosx_11_0_arm64.whl (834.0 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

devcontainer_rs-0.0.35-py3-none-macosx_10_12_x86_64.whl (889.4 kB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: devcontainer_rs-0.0.35-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 923.2 kB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.35-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c72e1a0c7722f7839adddb1db780140bebe4fbdab521bac1380f9c8814b18e37
MD5 9a6c9c9c18515a2a79b9dde2ecb85695
BLAKE2b-256 0ecfc1943fdefdcc6f9b54e1599290c8b49bd23f5603877d2ced3312398d59bf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: devcontainer_rs-0.0.35-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
  • Upload date:
  • Size: 987.1 kB
  • Tags: Python 3, manylinux: glibc 2.5+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.35-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4c16d732da0caace124e50b856a6429cdaeb4c53dd4b48ac910585e918076018
MD5 185487244e205ada9c8a676e4bc7668d
BLAKE2b-256 a273ea6fd019f9a4fd65166f54cfc56c390193142f819c052fdaa86276e90a17

See more details on using hashes here.

File details

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

File metadata

  • Download URL: devcontainer_rs-0.0.35-py3-none-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 834.0 kB
  • Tags: Python 3, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.35-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0237e62b1e564436e73f2edee84bb1bce6b147b4da8120fbc4dd9df900f5f9a1
MD5 663be4e3dd571822b5a201fd72cf54ee
BLAKE2b-256 f4a5624734f3d75dccb7eb03cf2a19408a0b4ffd80b705040ee5ece02a35d725

See more details on using hashes here.

File details

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

File metadata

  • Download URL: devcontainer_rs-0.0.35-py3-none-macosx_10_12_x86_64.whl
  • Upload date:
  • Size: 889.4 kB
  • Tags: Python 3, macOS 10.12+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","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.35-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6bb8edf9a4b7198b8eea75763a051f2cc7ab3f4c25c29f45c7c7ebe8f6108d18
MD5 927bab6839e81f0c1bd1b680b1904ebe
BLAKE2b-256 060ca77c8cf15906631d5e37be0ba15469197aebae20fe2900ce97f13afaff30

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