{ lib , callPackage , fetchFromGitHub , rustPlatform , cmake , pkg-config , protobuf , elfutils }: rustPlatform.buildRustPackage rec { pname = "router"; version = "1.52.1"; src = fetchFromGitHub { owner = "apollographql"; repo = pname; rev = "v${version}"; hash = "sha256-Gd+YXDztRfeJ7fFKSs7EPq0FsaSzMRYgh9CUXHS675w="; }; cargoHash = "sha256-jRv8mzeRznq8txQ+kgOr6TIXe5VDUCfGin8aLRX6HAo="; nativeBuildInputs = [ cmake pkg-config protobuf ]; buildInputs = [ elfutils ]; # The v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem # To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE RUSTY_V8_ARCHIVE = callPackage ./librusty_v8.nix { }; cargoTestFlags = [ "-- --skip=query_planner::tests::missing_typename_and_fragments_in_requires" ]; meta = with lib; { description = "Configurable, high-performance routing runtime for Apollo Federation"; homepage = "https://www.apollographql.com/docs/router/"; license = licenses.elastic20; maintainers = [ maintainers.bbigras ]; }; }