zeroenv 0.2.0

A zero-configuration development environment manager
zeroenv-0.2.0 is not a library.

πŸš€ ZeroEnv

License: MIT Rust PRs Welcome

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 .zeroenv state file.

πŸ› οΈ How It Works

zeroenv acts as an automated detective for your project dependencies:

  1. zeroenv init – Scans the current directory for project markers (package.json, go.mod, etc.), extracts engine/runtime constraints, and generates a unified .zeroenv manifest.
  2. 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
git clone https://github.com/nexus-forg/zeroenv.git

# Navigate to the directory
cd zeroenv

# Build the optimized production binary
cargo build --release

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
zeroenv init

# View currently locked project environment
zeroenv status

πŸ—ΊοΈ Roadmap & Ecosystem Status

We are building zeroenv incrementally. Here is the current support status:

Ecosystem Detectors

  • Node.js (via package.json engines parsing)
  • Go (via go.mod version line extraction)
  • Python (via basic requirements.txt parsing)
  • Rust (via Cargo.toml project 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.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“„ License

Distributed under the MIT License. See LICENSE for more information.