2025-12-21 18:19:21 +01:00
|
|
|
{
|
|
|
|
|
inputs = {
|
2026-05-10 15:57:12 +02:00
|
|
|
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
2025-12-21 18:19:21 +01:00
|
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
|
|
|
alejandra = {
|
|
|
|
|
url = "github:kamadorueda/alejandra/4.0.0";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
rust-overlay = {
|
|
|
|
|
url = "github:oxalica/rust-overlay";
|
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
nixConfig = {
|
|
|
|
|
extra-trusted-public-keys = [
|
2026-05-10 15:57:12 +02:00
|
|
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
|
|
|
|
"phundrak.cachix.org-1:osJAkYO0ioTOPqaQCIXMfIRz1/+YYlVFkup3R2KSexk="
|
|
|
|
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
2025-12-21 18:19:21 +01:00
|
|
|
];
|
|
|
|
|
extra-substituters = [
|
2026-05-10 15:57:12 +02:00
|
|
|
"https://phundrak.cachix.org?priority=10"
|
|
|
|
|
"https://nix-community.cachix.org?priority=20"
|
|
|
|
|
"https://cache.nixos.org?priority=30"
|
2025-12-21 18:19:21 +01:00
|
|
|
];
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
outputs = {
|
|
|
|
|
nixpkgs,
|
|
|
|
|
flake-utils,
|
|
|
|
|
rust-overlay,
|
|
|
|
|
alejandra,
|
|
|
|
|
...
|
2026-05-10 15:57:12 +02:00
|
|
|
}:
|
2025-12-21 18:19:21 +01:00
|
|
|
flake-utils.lib.eachDefaultSystem (
|
|
|
|
|
system: let
|
|
|
|
|
overlays = [(import rust-overlay)];
|
|
|
|
|
pkgs = import nixpkgs {inherit system overlays;};
|
|
|
|
|
rustVersion = pkgs.rust-bin.stable.latest.default;
|
2026-05-10 15:57:12 +02:00
|
|
|
targets = {
|
|
|
|
|
linux-x86_64 = {
|
|
|
|
|
crossPkgs = pkgs;
|
|
|
|
|
triple = "x86_64-unknown-linux-gnu";
|
|
|
|
|
};
|
|
|
|
|
linux-aarch64 = {
|
|
|
|
|
crossPkgs = pkgs.pkgsCross.aarch64-multiplatform;
|
|
|
|
|
triple = "aarch64-unknown-linux-gnu";
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
mkRustBuild = import ./nix/backend.nix;
|
|
|
|
|
packages = {
|
|
|
|
|
linux-x86_64 = mkRustBuild targets.linux-x86_64;
|
|
|
|
|
linux-aarch64 = mkRustBuild targets.linux-aarch64;
|
|
|
|
|
};
|
|
|
|
|
defaultBySystem = {
|
|
|
|
|
"x86_64-linux" = packages.linux-x86_64;
|
|
|
|
|
"aarch64-linux" = packages.linux-aarch64;
|
2025-12-21 18:19:21 +01:00
|
|
|
};
|
|
|
|
|
in {
|
|
|
|
|
formatter = alejandra.defaultPackage.${system};
|
2026-05-10 15:57:12 +02:00
|
|
|
packages.backend =
|
|
|
|
|
packages
|
|
|
|
|
// {
|
|
|
|
|
default = defaultBySystem.${system} or packages.linux-x86_64;
|
|
|
|
|
};
|
|
|
|
|
devShell = import ./nix/shell.nix {inherit pkgs rustVersion;};
|
2025-12-21 18:19:21 +01:00
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|