Command-stream provides stream-oriented shell command execution APIs in two language implementations:
- JavaScript package: Bun and Node.js package published to
npm as
command-stream. - Rust crate: Rust library and binary published to crates.io
as
command-stream.
Both implementations focus on shell-like command execution, real-time output handling, pipeline support, and cross-platform behavior. Language-specific API examples, package-manager instructions, release notes, and best practices live with each package.
The generated feature guide runs every documented feature in JavaScript and Rust and captures its real output. JavaScript examples are also compared across Node.js and Bun. The same catalog powers the searchable feature website, which is verified and deployed by GitHub Actions.
| Path | Purpose |
|---|---|
js/ |
JavaScript package source, tests, docs, and CI/CD scripts. |
rust/ |
Rust crate source, tests, docs, and CI/CD scripts. |
docs/ |
Generated feature guide, website, and case studies. |
.github/ |
GitHub workflow definitions and deployment notes. |
JavaScript and Rust releases are independent:
- JavaScript workflow:
.github/workflows/js.yml - Rust workflow:
.github/workflows/rust.yml - JavaScript GitHub release tags:
js-v<version> - Rust GitHub release tags:
rust-v<version>
Both maintained language implementations carry pinned, executable competitor compatibility corpora with explicit missing-feature ledgers:
Run the focused suites with bun run test:competitors in js/ and
cargo test --test competitor_compatibility in rust/.
The benchmark playgrounds provide measured process, package-footprint, feature-coverage, and deterministic real-world comparisons for both maintained implementations:
- JavaScript benchmarks: Execa, cross-spawn,
ShellJS, zx, and Bun Shell. Run
bun run benchmark:smokefromjs/. - Rust benchmarks:
std::process, Tokio process, async-process, duct, subprocess, and xshell. Run the documented Cargo smoke command fromrust/.
CI runs both suites and the language parity check prevents benchmark changes in
only one implementation unless maintainers explicitly apply parity-exempt.
Run all language-specific checks from the language folders:
cd js
bun install
bun run test
bun run checkcd rust
cargo fmt --all -- --check
cargo clippy --all-targets --all-features
cargo test --all-featuresCommand-stream is released under the Unlicense.