wasmcloud-component-adapters 0.9.0

wasmCloud component adapters
Documentation
{
  nixConfig.extra-substituters = [
    "https://wasmcloud.cachix.org"
    "https://bytecodealliance.cachix.org"
    "https://nix-community.cachix.org"
    "https://cache.garnix.io"
  ];
  nixConfig.extra-trusted-public-keys = [
    "wasmcloud.cachix.org-1:9gRBzsKh+x2HbVVspreFg/6iFRiD4aOcUQfXVDl3hiM="
    "bytecodealliance.cachix.org-1:0SBgh//n2n0heh0sDFhTm+ZKBRy2sInakzFGfzN531Y="
    "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
    "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
  ];

  inputs.nixify.url = "github:rvolosatovs/nixify";
  inputs.wasi-preview1-command-component-adapter.flake = false;
  inputs.wasi-preview1-command-component-adapter.url = "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.0/wasi_snapshot_preview1.command.wasm";
  inputs.wasi-preview1-reactor-component-adapter.flake = false;
  inputs.wasi-preview1-reactor-component-adapter.url = "https://github.com/bytecodealliance/wasmtime/releases/download/v19.0.0/wasi_snapshot_preview1.reactor.wasm";

  outputs = {
    nixify,
    wasi-preview1-command-component-adapter,
    wasi-preview1-reactor-component-adapter,
    ...
  }:
    with nixify.lib; let
      WASI_PREVIEW1_COMMAND_COMPONENT_ADAPTER = wasi-preview1-command-component-adapter;
      WASI_PREVIEW1_REACTOR_COMPONENT_ADAPTER = wasi-preview1-reactor-component-adapter;
    in
      rust.mkFlake {
        src = ./.;

        excludePaths = [
          ".github"
          ".gitignore"
        ];

        doCheck = false; # testing is performed in checks via `nextest`

        clippy.allTargets = true;
        clippy.deny = ["warnings"];
        clippy.workspace = true;

        test.allTargets = true;
        test.workspace = true;

        buildOverrides = {...}: {...}: {
          inherit
            WASI_PREVIEW1_COMMAND_COMPONENT_ADAPTER
            WASI_PREVIEW1_REACTOR_COMPONENT_ADAPTER
            ;
        };

        withPackages = {
          hostRustToolchain,
          packages,
          pkgs,
          ...
        }: let
          mkAdapter = name: src:
            pkgs.stdenv.mkDerivation {
              inherit
                name
                src
                ;

              dontUnpack = true;
              dontBuild = true;

              installPhase = ''
                install $src $out
              '';
            };
        in
          packages
          // {
            wasi-preview1-command-component-adapter = mkAdapter "wasi-preview1-command-component-adapter" wasi-preview1-command-component-adapter;
            wasi-preview1-reactor-component-adapter = mkAdapter "wasi-preview1-reactor-component-adapter" wasi-preview1-reactor-component-adapter;
          };
      };
}