Nix flake providing development environments and build tasks for the Rain Protocol ecosystem.
Rainix is shared infrastructure consumed by other Rain repos — the actual project code lives in downstream consumers.
Add Rainix as a flake input:
{
inputs.rainix.url = "github:rainlanguage/rainix";
}Requires Nix with flakes enabled.
nix develop # default shell (Solidity + Rust + Node + subgraph tools)
nix develop .#tauri-shell # Tauri desktop app developmentThe default shell auto-sources .env if present and runs npm ci --ignore-scripts if package.json exists.
All tasks are Nix packages run via nix run. From a consuming repo:
nix run ..#rainix-sol-prelude— forge install + buildnix run ..#rainix-sol-test— forge testnix run ..#rainix-sol-static— slither + forge fmt checknix run ..#rainix-sol-legal— REUSE/DCL-1.0 license compliancenix run ..#rainix-sol-artifacts— deploy to testnet
nix run ..#rainix-rs-prelude— environment prep (currently no-op)nix run ..#rainix-rs-test— cargo testnix run ..#rainix-rs-static— cargo fmt + clippynix run ..#rainix-rs-artifacts— cargo build --release
Downstream flakes can compose their own tasks and shells using:
pkgs— nixpkgs with all overlays appliedrust-toolchain— pinned Rust toolchainrust-build-inputs,sol-build-inputs,node-build-inputs— dependency listsmkTask— create Nix derivations wrapping shell scripts with dependencies on PATHnetwork-list— supported network names
- Rust: 1.94.0
- Solidity: solc 0.8.25
- Foundry: via foundry.nix
- Graph CLI: 0.69.2
- Goldsky CLI: 8.6.6
DecentraLicense 1.0 — enforced via reuse lint.