π ZeroEnv
ZeroEnv is a zero-configuration, lightning-fast development environment manager written in Rust.
Inspired by the structural simplicity of Git, zeroenv eliminates the friction of local environment setups. Instead of writing heavy Dockerfiles or learning complex Nix expressions, zeroenv automatically scans your repository, detects required toolchains, and locks the versions into a lightweight configuration.
β¨ Features
- Zero Configuration: No hand-crafted configs required. It infers everything from your code.
- Ultra Lightweight: Compiled into a single, dependency-free binary with zero daemon overhead.
- Language Agnostic: Built to support multiple ecosystems out of the box.
- Deterministic: Locks local environment states via a simple
.zeroenvstate file.
π οΈ How It Works
zeroenv acts as an automated detective for your project dependencies:
zeroenv initβ Scans the current directory for project markers (package.json,go.mod, etc.), extracts engine/runtime constraints, and generates a unified.zeroenvmanifest.zeroenv statusβ Reads the local manifest and outputs the exact runtime state required for the current workspace.
π¦ Installation
Currently, zeroenv is in active MVP stage and can be built from source.
Prerequisites
Make sure you have the Rust toolchain installed (cargo, rustc).
Building from source
# Clone the repository
# Navigate to the directory
# Build the optimized production binary
The compiled binary will be available at ./target/release/zeroenv. You can move it to your local PATH (e.g., /usr/local/bin/) for global access.
πββοΈ Usage
Go to any of your software projects (Node.js, Go, Python, or Rust) and run:
# Initialize and scan environment
# View currently locked project environment
πΊοΈ Roadmap & Ecosystem Status
We are building zeroenv incrementally. Here is the current support status:
Ecosystem Detectors
- Node.js (via
package.jsonengines parsing) - Go (via
go.modversion line extraction) - Python (via basic
requirements.txtparsing) - Rust (via
Cargo.tomlproject discovery) - PHP (via
composer.json) (Planned) - Ruby (via
Gemfile) (Planned)
Core Architecture
- Local configuration serialization (
.zeroenv) - Automatic download of missing language binaries into
~/.zeroenv/bin/(Next major step) - Context-aware shell mutation (Auto-activating environments on
cd) - Lightweight sandboxing / OS-level process isolation
π€ Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
π License
Distributed under the MIT License. See LICENSE for more information.