{ lib , rustPlatform , fetchFromGitHub , pkg-config , openssl , stdenv , darwin }: rustPlatform.buildRustPackage rec { pname = "cargo-component"; version = "0.17.0"; src = fetchFromGitHub { owner = "bytecodealliance"; repo = "cargo-component"; rev = "v${version}"; hash = "sha256-j1gQgtse3DQWyR4D5BzQ0aAEGhNKoFT0ACRBVOqDdFE="; }; cargoHash = "sha256-1YDnqopghS6MpQ2h8e5kQj0bxKAC2B6XzVeC60+M3MM="; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration ]; # requires the wasm32-wasi target doCheck = false; meta = with lib; { description = "Cargo subcommand for creating WebAssembly components based on the component model proposal"; homepage = "https://github.com/bytecodealliance/cargo-component"; changelog = "https://github.com/bytecodealliance/cargo-component/releases/tag/${src.rev}"; license = licenses.asl20; maintainers = with maintainers; [ figsoda ]; mainProgram = "cargo-component"; }; }