1
0
Fork 0
piped-flake/packages/proxy/default.nix

44 lines
1 KiB
Nix

{
lib,
rustPlatform,
fetchFromGitHub,
nasm,
openssl,
pkg-config,
withOpenSSL ? false,
withMimalloc ? true,
withWebP ? true,
withAVIF ? false,
}: let
meta = builtins.fromJSON (builtins.readFile ../../meta.json);
rev = meta.proxy.rev;
inherit (lib.lists) optional;
in
rustPlatform.buildRustPackage rec {
pname = "piped-proxy";
version = "latest-${rev}";
src = fetchFromGitHub {
owner = "TeamPiped";
repo = "piped-proxy";
inherit rev;
sha256 = "${meta.proxy.sha256}";
};
buildNoDefaultFeatures = true;
buildFeatures =
(
if withOpenSSL
then ["reqwest-native-tls"]
else ["reqwest-rustls"]
)
++ (optional withMimalloc "mimalloc")
++ (optional withAVIF "avif")
++ (optional withWebP "webp");
buildInputs = optional withOpenSSL openssl;
nativeBuildInputs = [] ++ (optional withAVIF nasm) ++ (optional withOpenSSL pkg-config);
cargoLock = {lockFile = "${src}/Cargo.lock";};
doCheck = false;
}