A fast rust tool to check availability of your entire system in caches. It so to speak "checks the weather" before going to update. Heavily inspired by guix weather.
Find a file
Christina Sørensen 43e0d69757
build(deps): reqwest 0.11 -> 0.12
Updating crates.io index
 Locking 27 packages to latest compatible versions
  Adding atomic-waker v1.1.2
  Adding base64 v0.22.1
  Adding h2 v0.4.6
  Adding http v1.1.0
  Adding http-body v1.0.1
  Adding http-body-util v0.1.2
  Adding hyper v1.5.0
  Adding hyper-rustls v0.27.3
Updating hyper-tls v0.5.0 -> v0.6.0
  Adding hyper-util v0.1.9
Updating reqwest v0.11.27 -> v0.12.8
  Adding ring v0.17.8
  Adding rustls v0.23.15
Updating rustls-pemfile v1.0.4 -> v2.2.0
  Adding rustls-pki-types v1.10.0
  Adding rustls-webpki v0.102.8
  Adding spin v0.9.8
  Adding subtle v2.6.1
  Adding sync_wrapper v1.0.1
Updating system-configuration v0.5.1 -> v0.6.1
Updating system-configuration-sys v0.5.0 -> v0.6.0
  Adding tokio-rustls v0.26.0
  Adding untrusted v0.9.0
  Adding windows-registry v0.2.0 (latest: v0.3.0)
  Adding windows-result v0.2.0
  Adding windows-strings v0.1.0 (latest: v0.2.0)
  Adding zeroize v1.8.1

Signed-off-by: Christina Sørensen <christina@cafkafk.com>
2024-10-27 15:31:55 +01:00
.config fix: the small things 2024-09-11 09:29:02 +02:00
.forgejo fix: use our own forgejo actions repo 2024-09-09 07:50:42 +02:00
.github ci: removed unused cheks, add funding for github 2024-09-05 21:02:09 +02:00
crates build(deps): reqwest 0.11 -> 0.12 2024-10-27 15:31:55 +01:00
LICENSES docs: readme headers, code of conduct 2024-09-05 08:50:47 +02:00
.envrc feat: flake + lix 2024-09-05 07:32:31 +02:00
.gitignore feat: flake + lix 2024-09-05 07:32:31 +02:00
.rustfmt.toml build: change rust tabwidth 2024-09-06 11:24:30 +02:00
.versionrc build: add convco config with merge type 2024-09-05 10:26:56 +02:00
Cargo.lock build(deps): reqwest 0.11 -> 0.12 2024-10-27 15:31:55 +01:00
Cargo.toml chore(release): cargo v0.0.4 2024-09-13 07:19:58 +02:00
CODE_OF_CONDUCT.md docs: readme headers, code of conduct 2024-09-05 08:50:47 +02:00
CONTRIBUTING.md docs: add CONTRIBUTING.md 2024-09-05 10:07:11 +02:00
deny.toml ci: allow own license 2024-09-07 11:43:47 +02:00
flake.lock build(deps): bump flake.lock 2024-09-06 05:10:38 +02:00
flake.nix fix: the small things 2024-09-11 09:29:02 +02:00
justfile build: add basic changelog gen 2024-09-06 05:08:33 +02:00
LICENSE.txt feat: flake + lix 2024-09-05 07:32:31 +02:00
README.md docs: correct readme h1 2024-09-05 10:11:53 +02:00
REUSE.toml build: add convco config with merge type 2024-09-05 10:26:56 +02:00

Nix Weather - Check Cache Availablility of NixOS Configurations

A fast rust tool to check availability of your entire system in caches. It so to speak "checks the weather" before going to update. Heavily inspired by guix weather.

Built with Nix Contributor Covenant REUSE status License: EUPL-1.2

Usage

Note

Currently, nix-weather only has first-class support for flakes.

General usage would be like this:

nix-weather --name myhost --config ~/git/my-nixos-config

Here, we specify the name of the host, as specified at the flake output nixosConfiguration, and a path to the NixOS configuration flake.

How It Works

The basic idea is that we construct a set of all requisites to build the top-level of a NixOS configuration, and then query Nix cache(s) for the narinfo. By doing this in a high concurrency, parallel task runner (i.e. tokio async runtime), and only querying the headers for status codes, we can reach impressive speeds, typically around 45~ network time.

One of the biggest limiting factors regarding speed is building the config.system.toplevel, and finding the necessary requisites with nix-store. Caching the requisites is a future goal, so that we only have to build the toplevel, and then match against its derivation in cache, which should cut down the nix part of the runtime by ~80%.

Contributing

For information on contributing, please see CONTRIBUTING.md.