ALPHA: wire is a tool to deploy nixos systems wire.althaea.zone/
1![Rust Tests Status](https://img.shields.io/github/actions/workflow/status/mrshmllow/wire/test.yml?branch=trunk&style=flat-square&label=Rust%20Tests) 2![BuildBot Build & VM Test Status](https://img.shields.io/github/checks-status/mrshmllow/wire/trunk?style=flat-square&label=BuildBot%20Build%20%26%20VM%20Tests) 3![Documentation Status](https://img.shields.io/github/actions/workflow/status/mrshmllow/wire/pages.yml?branch=trunk&style=flat-square&label=Documentation) 4 5wire is a tool to deploy nixos systems. its usage is inspired by colmena however it is not a fork. 6 7Read the [The Tutorial](https://wire.althaea.zone/tutorial/overview.html), [Guides](https://wire.althaea.zone/guides/installation.html), or continue reading this readme for development information. 8 9## Tree Layout 10 11``` 12wire 13├── wire 14│ ├── lib 15│ │ └── Rust library containing business logic, consumed by `wire` 16│ ├── cli 17│ │ └── Rust binary, using `lib` 18│ └── agent 19│ └── Rust binary ran on a target node. receives key file bytes and metadata w/ protobuf over SSH stdin 20├── doc 21│ └── a [vitepress](https://vitepress.dev/) site 22├── runtime 23│ └── Nix files used during runtime to evaluate nodes 24├── bench 25│ └── A little tool to benchmark wire against a large hive 26└──tests 27 └── Directories used during cargo & NixOS VM testing 28``` 29 30## Development 31 32Please use `nix develop` for access to the development environment and to ensure 33your changes are ran against the defined git hooks. For simplicity, you may wish 34to use [direnv](https://github.com/direnv/direnv). 35 36### Testing 37 38#### dhat profiling 39 40```sh 41$ just build-dhat 42``` 43 44#### Testing 45 46```sh 47$ cargo test 48$ nix flake check 49```