rustnix 0.0.1

A reimplementation of nix in Rust.
Documentation
# rix

[![builder](https://github.com/urbas/rix/actions/workflows/build.yml/badge.svg)](https://github.com/urbas/rix/actions/workflows/build.yml)

A reimplementation of `nix` in Rust.

# Progress

## New sub-commands

- 🌗 `build-derivation`: builds a derivation in a sandbox.
  - 🌕 stage 0: creates a sandbox.
  - 🌕 stage 1: builds derivations without dependencies.
  - 🌗 stage 2: builds derivations with dependencies.
    - TODO: mount directories for each derivation output.
    - TODO: deduplicate mount paths (rix now fails if multiple dependent derivations specify the same mount paths).
    - TODO: prevent internet access.
    - TODO: mount runtime dependencies of output paths too.
  - 🌑 stage 3: builds fixed derivations (with internet access).
  - 🌑 stage 4: builds X% of derivations in `nixpkgs` (assuming all dependencies are present).

## Nix sub-commands

- 🌘 `show-derivation`

  - 🌕 stage 1 (MVP): parse .drv files and dump JSON
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌕 `hash to-base32`

  - 🌕 stage 1 (MVP): conversions of non-SRI hashes
  - 🌕 stage 2: most common use cases
  - 🌕 stage 3: full implementation

- 🌕 `hash to-base64`

  - 🌕 stage 1 (MVP): conversions of non-SRI hashes
  - 🌕 stage 2: most common use cases
  - 🌕 stage 3: full implementation

- 🌕 `hash to-base16`

  - 🌕 stage 1 (MVP): conversions of non-SRI hashes
  - 🌕 stage 2: most common use cases
  - 🌕 stage 3: full implementation

- 🌕 `hash to-sri`

  - 🌕 stage 1 (MVP)
  - 🌕 stage 2: most common use cases
  - 🌕 stage 3: full implementation

- 🌑 `hash file`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `hash path`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `build`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `develop`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `flake`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `help`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `profile`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `repl`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `run`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `search`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `shell`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `bundle`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `copy`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `edit`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `eval`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `log`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `path-info`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `registry`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `why-depends`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `daemon`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `describe-stores`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `key`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `nar`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `print-dev-env`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `realisation`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `show-config`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `store`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `doctor`

  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation

- 🌑 `upgrade-nix`
  - 🌑 stage 1 (MVP)
  - 🌑 stage 2: most common use cases
  - 🌑 stage 3: full implementation