From decf3c4fe276d8464a7ac7cd3c029ba86514673d Mon Sep 17 00:00:00 2001 From: jiaxiao zhou Date: Sun, 7 Apr 2024 23:04:00 +0000 Subject: [PATCH 1/2] feat(*): remove spin shim from the repo this commit removes the spin shim from the repo since we are moving the spin shim to SpinKube organization all-together. It also removes spin-related images and cluster configuration. In the future release, there will not be a spin shim baked into the k3d cluster and no published spin-related images Signed-off-by: jiaxiao zhou --- .cargo/config.toml | 4 - .github/workflows/build.yaml | 4 - .github/workflows/docker-build-push.yaml | 8 - Cargo.lock | 42 - Makefile | 3 +- containerd-shim-spin/Cargo.lock | 7873 ----------------- containerd-shim-spin/Cargo.toml | 35 - containerd-shim-spin/Cross.toml | 8 - containerd-shim-spin/quickstart.md | 274 - containerd-shim-spin/src/engine.rs | 329 - containerd-shim-spin/src/main.rs | 8 - cross/Dockerfile | 3 - deployments/k3d/Makefile | 7 +- deployments/k3d/config.toml.tmpl | 3 - deployments/k3d/workload/runtime.yaml | 9 - deployments/k3d/workload/workload.yaml | 43 +- deployments/k8s/all-in-one-demo.yaml | 41 - deployments/workloads/runtime.yaml | 6 - deployments/workloads/workload.yaml | 49 +- images/spin-dapr/.dockerignore | 5 - images/spin-dapr/.gitignore | 2 - images/spin-dapr/Cargo.toml | 20 - images/spin-dapr/Dockerfile | 4 - images/spin-dapr/README.md | 45 - images/spin-dapr/deploy.yaml | 95 - images/spin-dapr/spin.toml | 17 - images/spin-dapr/src/lib.rs | 30 - images/spin-inbound-redis/Cargo.lock | 589 -- images/spin-inbound-redis/Cargo.toml | 20 - images/spin-inbound-redis/Dockerfile | 8 - images/spin-inbound-redis/spin.toml | 23 - images/spin-inbound-redis/src/lib.rs | 21 - images/spin-keyvalue/Cargo.lock | 589 -- images/spin-keyvalue/Cargo.toml | 19 - images/spin-keyvalue/Dockerfile | 8 - images/spin-keyvalue/runtime-config.toml | 4 - images/spin-keyvalue/spin.toml | 20 - images/spin-keyvalue/src/lib.rs | 18 - images/spin-outbound-redis/Cargo.lock | 589 -- images/spin-outbound-redis/Cargo.toml | 19 - images/spin-outbound-redis/Dockerfile | 8 - images/spin-outbound-redis/spin.toml | 25 - .../spin_outbound_redis.wasm | Bin 137573 -> 0 bytes images/spin-outbound-redis/src/lib.rs | 39 - images/spin/Cargo.lock | 589 -- images/spin/Cargo.toml | 19 - images/spin/Dockerfile | 15 - images/spin/go-hello/go.mod | 9 - images/spin/go-hello/go.sum | 4 - images/spin/go-hello/main.go | 36 - images/spin/spin.toml | 22 - images/spin/src/lib.rs | 8 - images/spin_dotnet/Dockerfile | 14 - images/spin_dotnet/Handler.cs | 20 - images/spin_dotnet/Project.csproj | 21 - images/spin_dotnet/spin.toml | 14 - scripts/move-bins.sh | 3 +- scripts/up.sh | 6 +- tests/Cargo.toml | 1 - tests/src/integration_test.rs | 100 - tests/workloads/runtime.yaml | 6 - tests/workloads/spin-runtime-config.yaml | 11 - tests/workloads/workload.yaml | 148 +- 63 files changed, 10 insertions(+), 12002 deletions(-) delete mode 100644 containerd-shim-spin/Cargo.lock delete mode 100644 containerd-shim-spin/Cargo.toml delete mode 100644 containerd-shim-spin/Cross.toml delete mode 100644 containerd-shim-spin/quickstart.md delete mode 100644 containerd-shim-spin/src/engine.rs delete mode 100644 containerd-shim-spin/src/main.rs delete mode 100644 images/spin-dapr/.dockerignore delete mode 100644 images/spin-dapr/.gitignore delete mode 100644 images/spin-dapr/Cargo.toml delete mode 100644 images/spin-dapr/Dockerfile delete mode 100644 images/spin-dapr/README.md delete mode 100644 images/spin-dapr/deploy.yaml delete mode 100644 images/spin-dapr/spin.toml delete mode 100644 images/spin-dapr/src/lib.rs delete mode 100644 images/spin-inbound-redis/Cargo.lock delete mode 100644 images/spin-inbound-redis/Cargo.toml delete mode 100644 images/spin-inbound-redis/Dockerfile delete mode 100644 images/spin-inbound-redis/spin.toml delete mode 100644 images/spin-inbound-redis/src/lib.rs delete mode 100644 images/spin-keyvalue/Cargo.lock delete mode 100644 images/spin-keyvalue/Cargo.toml delete mode 100644 images/spin-keyvalue/Dockerfile delete mode 100644 images/spin-keyvalue/runtime-config.toml delete mode 100644 images/spin-keyvalue/spin.toml delete mode 100644 images/spin-keyvalue/src/lib.rs delete mode 100644 images/spin-outbound-redis/Cargo.lock delete mode 100644 images/spin-outbound-redis/Cargo.toml delete mode 100644 images/spin-outbound-redis/Dockerfile delete mode 100644 images/spin-outbound-redis/spin.toml delete mode 100755 images/spin-outbound-redis/spin_outbound_redis.wasm delete mode 100644 images/spin-outbound-redis/src/lib.rs delete mode 100644 images/spin/Cargo.lock delete mode 100644 images/spin/Cargo.toml delete mode 100644 images/spin/Dockerfile delete mode 100644 images/spin/go-hello/go.mod delete mode 100644 images/spin/go-hello/go.sum delete mode 100644 images/spin/go-hello/main.go delete mode 100644 images/spin/spin.toml delete mode 100644 images/spin/src/lib.rs delete mode 100644 images/spin_dotnet/Dockerfile delete mode 100644 images/spin_dotnet/Handler.cs delete mode 100644 images/spin_dotnet/Project.csproj delete mode 100644 images/spin_dotnet/spin.toml delete mode 100644 tests/workloads/spin-runtime-config.yaml diff --git a/.cargo/config.toml b/.cargo/config.toml index 2b37c758..7b5c60f0 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,7 +1,3 @@ [profile.release] strip = "symbols" panic = "abort" - -[target.aarch64-unknown-linux-musl] -# see https://github.com/fermyon/spin/commit/07db218dccf2d02eb6c8c74d0b39dd2eb59cc4b4 -rustflags = ["-Ctarget-feature=+fp16"] diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index e2d56247..429edf60 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -22,10 +22,6 @@ jobs: name: "slight", version: "v1", } - - { - name: "spin", - version: "v2", - } - { name: "wws", version: "v1", diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index e1ef4361..e69ce8d2 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -15,18 +15,10 @@ jobs: strategy: matrix: image: - - imageName: examples/spin-rust-hello - context: images/spin - - imageName: examples/spin-dotnet-hello - context: images/spin_dotnet - imageName: examples/slight-rust-hello context: images/slight - imageName: examples/wws-js-hello context: images/wws - - imageName: examples/spin-inbound-redis - context: images/spin-inbound-redis - - imageName: examples/spin-outbound-redis - context: images/spin-outbound-redis - imageName: examples/lunatic-rust-hello context: images/lunatic - imageName: examples/lunatic-spawn diff --git a/Cargo.lock b/Cargo.lock index 346d5c26..dfc50c0c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -173,20 +173,6 @@ dependencies = [ "windows-targets", ] -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util", -] - [[package]] name = "containerd-wasm-shims-tests" version = "0.11.1" @@ -198,7 +184,6 @@ dependencies = [ "k8s-openapi", "kube", "rand", - "redis", "tokio", "tower", ] @@ -1055,27 +1040,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "redis" -version = "0.23.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f49cdc0bb3f412bf8e7d1bd90fe1d9eb10bc5c399ba90973c14662a27b3f8ba" -dependencies = [ - "async-trait", - "bytes", - "combine", - "futures-util", - "itoa", - "percent-encoding", - "pin-project-lite", - "ryu", - "sha1_smol", - "socket2 0.4.10", - "tokio", - "tokio-util", - "url", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -1313,12 +1277,6 @@ dependencies = [ "digest", ] -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - [[package]] name = "signal-hook-registry" version = "1.4.1" diff --git a/Makefile b/Makefile index e538aca4..4a28152a 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,9 @@ -SHIMS := slight spin wws lunatic +SHIMS := slight wws lunatic BUILD_TARGETS = $(foreach shim,$(SHIMS),build-$(shim)-cross-$(TARGET)) PREFIX ?= /usr/local INSTALL ?= install TEST_IMG_NAME_lunatic ?= wasmtest_lunatic:latest -TEST_IMG_NAME_spin ?= wasmtest_spin:latest TEST_IMG_NAME_slight ?= wasmtest_slight:latest TEST_IMG_NAME_wws ?= wasmtest_wws:latest ARCH ?= x86_64 diff --git a/containerd-shim-spin/Cargo.lock b/containerd-shim-spin/Cargo.lock deleted file mode 100644 index 7f747272..00000000 --- a/containerd-shim-spin/Cargo.lock +++ /dev/null @@ -1,7873 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "addr2line" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - -[[package]] -name = "aes" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" -dependencies = [ - "cfg-if 1.0.0", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "aho-corasick" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" -dependencies = [ - "memchr", -] - -[[package]] -name = "aliasable" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" - -[[package]] -name = "allocator-api2" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" - -[[package]] -name = "ambient-authority" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b" - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anyhow" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" - -[[package]] -name = "arbitrary" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" - -[[package]] -name = "async-channel" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35" -dependencies = [ - "concurrent-queue", - "event-listener 2.5.3", - "futures-core", -] - -[[package]] -name = "async-channel" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" -dependencies = [ - "concurrent-queue", - "event-listener 4.0.3", - "event-listener-strategy", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-compression" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2d0cfb2a7388d34f590e76686704c494ed7aaceed62ee1ba35cbf363abc2a5" -dependencies = [ - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "async-executor" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c" -dependencies = [ - "async-lock 3.3.0", - "async-task", - "concurrent-queue", - "fastrand 2.0.1", - "futures-lite 2.2.0", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" -dependencies = [ - "async-channel 2.1.1", - "async-executor", - "async-io 2.2.2", - "async-lock 3.3.0", - "blocking", - "futures-lite 2.2.0", - "once_cell", -] - -[[package]] -name = "async-io" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" -dependencies = [ - "async-lock 2.8.0", - "autocfg", - "cfg-if 1.0.0", - "concurrent-queue", - "futures-lite 1.13.0", - "log", - "parking", - "polling 2.8.0", - "rustix 0.37.27", - "slab", - "socket2 0.4.10", - "waker-fn", -] - -[[package]] -name = "async-io" -version = "2.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6afaa937395a620e33dc6a742c593c01aced20aa376ffb0f628121198578ccc7" -dependencies = [ - "async-lock 3.3.0", - "cfg-if 1.0.0", - "concurrent-queue", - "futures-io", - "futures-lite 2.2.0", - "parking", - "polling 3.3.1", - "rustix 0.38.30", - "slab", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "async-lock" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b" -dependencies = [ - "event-listener 2.5.3", -] - -[[package]] -name = "async-lock" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" -dependencies = [ - "event-listener 4.0.3", - "event-listener-strategy", - "pin-project-lite", -] - -[[package]] -name = "async-process" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea6438ba0a08d81529c69b36700fa2f95837bfe3e776ab39cde9c14d9149da88" -dependencies = [ - "async-io 1.13.0", - "async-lock 2.8.0", - "async-signal", - "blocking", - "cfg-if 1.0.0", - "event-listener 3.1.0", - "futures-lite 1.13.0", - "rustix 0.38.30", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-signal" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e47d90f65a225c4527103a8d747001fc56e375203592b25ad103e1ca13124c5" -dependencies = [ - "async-io 2.2.2", - "async-lock 2.8.0", - "atomic-waker", - "cfg-if 1.0.0", - "futures-core", - "futures-io", - "rustix 0.38.30", - "signal-hook-registry", - "slab", - "windows-sys 0.48.0", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-channel 1.9.0", - "async-global-executor", - "async-io 1.13.0", - "async-lock 2.8.0", - "async-process", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite 1.13.0", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite", - "pin-utils", - "slab", - "wasm-bindgen-futures", -] - -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "async-tar" -version = "0.4.2" -source = "git+https://github.com/vdice/async-tar?rev=71e037f9652971e7a55b412a8e47a37b06f9c29d#71e037f9652971e7a55b412a8e47a37b06f9c29d" -dependencies = [ - "async-std", - "filetime", - "libc", - "pin-project", - "redox_syscall 0.2.16", - "xattr 0.2.3", -] - -[[package]] -name = "async-task" -version = "4.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799" - -[[package]] -name = "async-trait" -version = "0.1.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "aws-config" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7688e1dfbb9f7804fab0a830820d7e827b8d973906763cf1a855ce4719292f5" -dependencies = [ - "aws-http", - "aws-sdk-sso", - "aws-sdk-sts", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-types", - "aws-types", - "bytes", - "hex", - "http 0.2.11", - "hyper 0.14.28", - "ring 0.16.20", - "time", - "tokio", - "tower", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-endpoint" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "253d7cd480bfa59a5323390e9e91885a8f06a275e0517d81eeb1070b6aa7d271" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "aws-types", - "http 0.2.11", - "regex", - "tracing", -] - -[[package]] -name = "aws-http" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd1b83859383e46ea8fda633378f9f3f02e6e3a446fd89f0240b5c3662716c9" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "aws-types", - "bytes", - "http 0.2.11", - "http-body 0.4.6", - "lazy_static", - "percent-encoding", - "pin-project-lite", - "tracing", -] - -[[package]] -name = "aws-sdk-sqs" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b489461c4309514f1019a924687fbdafeb88eeeac0800e8aca6fef6a66877e73" -dependencies = [ - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-query", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "bytes", - "http 0.2.11", - "tokio-stream", - "tower", -] - -[[package]] -name = "aws-sdk-sso" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf03342c2b3f52b180f484e60586500765474f2bfc7dcd4ffe893a7a1929db1d" -dependencies = [ - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-types", - "aws-types", - "bytes", - "http 0.2.11", - "tokio-stream", - "tower", -] - -[[package]] -name = "aws-sdk-sts" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa1de4e07ea87a30a317c7b563b3a40fd18a843ad794216dda81672b6e174bce" -dependencies = [ - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-query", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "bytes", - "http 0.2.11", - "tower", - "tracing", -] - -[[package]] -name = "aws-sig-auth" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6126c4ff918e35fb9ae1bf2de71157fad36f0cc6a2b1d0f7197ee711713700fc" -dependencies = [ - "aws-sigv4", - "aws-smithy-http", - "aws-types", - "http 0.2.11", - "tracing", -] - -[[package]] -name = "aws-sigv4" -version = "0.52.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd1ee2d9e6e268a77bdf3a0dc2cc8767401627e60abaa32883aaa3d8b47428e9" -dependencies = [ - "aws-smithy-http", - "form_urlencoded", - "hex", - "hmac", - "http 0.2.11", - "once_cell", - "percent-encoding", - "regex", - "sha2", - "time", - "tracing", -] - -[[package]] -name = "aws-smithy-async" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e6a895d68852dd1564328e63ef1583e5eb307dd2a5ebf35d862a5c402957d5e" -dependencies = [ - "futures-util", - "pin-project-lite", - "tokio", - "tokio-stream", -] - -[[package]] -name = "aws-smithy-client" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f505bf793eb3e6d7c166ef1275c27b4b2cd5361173fe950ac8e2cfc08c29a7ef" -dependencies = [ - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-types", - "bytes", - "fastrand 1.9.0", - "http 0.2.11", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-rustls 0.23.2", - "lazy_static", - "pin-project-lite", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "aws-smithy-http" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e4b4304b7ea4af1af3e08535100eb7b6459d5a6264b92078bf85176d04ab85" -dependencies = [ - "aws-smithy-types", - "bytes", - "bytes-utils", - "futures-core", - "http 0.2.11", - "http-body 0.4.6", - "hyper 0.14.28", - "once_cell", - "percent-encoding", - "pin-project-lite", - "pin-utils", - "tokio", - "tokio-util 0.7.10", - "tracing", -] - -[[package]] -name = "aws-smithy-http-tower" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86072ecc4dc4faf3e2071144285cfd539263fe7102b701d54fb991eafb04af8" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "bytes", - "http 0.2.11", - "http-body 0.4.6", - "pin-project-lite", - "tower", - "tracing", -] - -[[package]] -name = "aws-smithy-json" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e3ddd9275b167bc59e9446469eca56177ec0b51225632f90aaa2cd5f41c940e" -dependencies = [ - "aws-smithy-types", -] - -[[package]] -name = "aws-smithy-query" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13b19d2e0b3ce20e460bad0d0d974238673100edebba6978c2c1aadd925602f7" -dependencies = [ - "aws-smithy-types", - "urlencoding", -] - -[[package]] -name = "aws-smithy-types" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "987b1e37febb9bd409ca0846e82d35299e572ad8279bc404778caeb5fc05ad56" -dependencies = [ - "base64-simd", - "itoa", - "num-integer", - "ryu", - "time", -] - -[[package]] -name = "aws-smithy-xml" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ce3791e14eec75ffac851a5a559f1ce6b31843297f42cc8bfba82714a6a5d8" -dependencies = [ - "xmlparser", -] - -[[package]] -name = "aws-types" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c05adca3e2bcf686dd2c47836f216ab52ed7845c177d180c84b08522c1166a3" -dependencies = [ - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-types", - "http 0.2.11", - "rustc_version", - "tracing", - "zeroize", -] - -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http 0.2.11", - "http-body 0.4.6", - "hyper 0.14.28", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 0.2.11", - "http-body 0.4.6", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "azure_core" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32568c56fda7f2f1173430298bddeb507ed44e99bd989ba1156a25534bff5d98" -dependencies = [ - "async-trait", - "base64 0.21.7", - "bytes", - "dyn-clone", - "futures", - "getrandom 0.2.12", - "http-types", - "log", - "paste", - "pin-project", - "rand 0.8.5", - "reqwest", - "rustc_version", - "serde", - "serde_json", - "time", - "url", - "uuid", -] - -[[package]] -name = "azure_data_cosmos" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73dede39a91e205b2050f250f6e31ed7c4c72be7ee694930c155c4d7636fe8e1" -dependencies = [ - "async-trait", - "azure_core", - "bytes", - "futures", - "hmac", - "log", - "serde", - "serde_json", - "sha2", - "thiserror", - "time", - "url", - "uuid", -] - -[[package]] -name = "backtrace" -version = "0.3.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" -dependencies = [ - "byteorder", -] - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64-simd" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" -dependencies = [ - "simd-abstraction", -] - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.69.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c69fae65a523209d34240b60abe0c42d33d1045d445c0839d8a4894a736e2d" -dependencies = [ - "bitflags 2.4.1", - "cexpr", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", - "syn 2.0.48", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blocking" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118" -dependencies = [ - "async-channel 2.1.1", - "async-lock 3.3.0", - "async-task", - "fastrand 2.0.1", - "futures-io", - "futures-lite 2.2.0", - "piper", - "tracing", -] - -[[package]] -name = "btoi" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" -dependencies = [ - "num-traits", -] - -[[package]] -name = "bumpalo" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" - -[[package]] -name = "bytemuck" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "374d28ec25809ee0e23827c2ab573d729e293f281dfe393500e7ad618baa61c6" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" -dependencies = [ - "serde", -] - -[[package]] -name = "bytes-utils" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" -dependencies = [ - "bytes", - "either", -] - -[[package]] -name = "bytesize" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" - -[[package]] -name = "bzip2" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" -dependencies = [ - "bzip2-sys", - "libc", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "cached-path" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "097968e38f1319207f057d0f4d76452e4f4f847a5de61c5215379f297fa034f3" -dependencies = [ - "flate2", - "fs2", - "glob", - "indicatif", - "log", - "rand 0.8.5", - "reqwest", - "serde", - "serde_json", - "sha2", - "tar", - "tempfile", - "thiserror", - "zip", -] - -[[package]] -name = "cap-fs-ext" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88e341d15ac1029aadce600be764a1a1edafe40e03cde23285bc1d261b3a4866" -dependencies = [ - "cap-primitives", - "cap-std", - "io-lifetimes 2.0.3", - "windows-sys 0.52.0", -] - -[[package]] -name = "cap-net-ext" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "434168fe6533055f0f4204039abe3ff6d7db338ef46872a5fa39e9d5ad5ab7a9" -dependencies = [ - "cap-primitives", - "cap-std", - "rustix 0.38.30", - "smallvec", -] - -[[package]] -name = "cap-primitives" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe16767ed8eee6d3f1f00d6a7576b81c226ab917eb54b96e5f77a5216ef67abb" -dependencies = [ - "ambient-authority", - "fs-set-times", - "io-extras", - "io-lifetimes 2.0.3", - "ipnet", - "maybe-owned", - "rustix 0.38.30", - "windows-sys 0.52.0", - "winx", -] - -[[package]] -name = "cap-rand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20e5695565f0cd7106bc3c7170323597540e772bb73e0be2cd2c662a0f8fa4ca" -dependencies = [ - "ambient-authority", - "rand 0.8.5", -] - -[[package]] -name = "cap-std" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "593db20e4c51f62d3284bae7ee718849c3214f93a3b94ea1899ad85ba119d330" -dependencies = [ - "cap-primitives", - "io-extras", - "io-lifetimes 2.0.3", - "rustix 0.38.30", -] - -[[package]] -name = "cap-time-ext" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03261630f291f425430a36f38c847828265bc928f517cdd2004c56f4b02f002b" -dependencies = [ - "ambient-authority", - "cap-primitives", - "iana-time-zone", - "once_cell", - "rustix 0.38.30", - "winx", -] - -[[package]] -name = "caps" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" -dependencies = [ - "libc", - "thiserror", -] - -[[package]] -name = "cc" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" -dependencies = [ - "jobserver", - "libc", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cgroups-rs" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db7c2f5545da4c12c5701455d9471da5f07db52e49b9cccb4f5512226dd0836" -dependencies = [ - "libc", - "log", - "nix 0.25.1", - "regex", - "thiserror", -] - -[[package]] -name = "chrono" -version = "0.4.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-targets 0.48.5", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clang-sys" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags 1.3.2", - "clap_derive", - "clap_lex", - "indexmap 1.9.3", - "once_cell", - "strsim", - "termcolor", - "textwrap", -] - -[[package]] -name = "clap_derive" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "cmake" -version = "0.1.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" -dependencies = [ - "cc", -] - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", - "tokio-util 0.7.10", -] - -[[package]] -name = "command-fds" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f190f3c954f7bca3c6296d0ec561c739bdbe6c7e990294ed168d415f6e1b5b01" -dependencies = [ - "nix 0.27.1", - "thiserror", -] - -[[package]] -name = "concurrent-queue" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "console" -version = "0.15.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e1f83fc076bd6dd27517eacdf25fef6c4dfe5f1d7448bafaaf3a26f13b5e4eb" -dependencies = [ - "encode_unicode", - "lazy_static", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "containerd-client" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbd55a5b186b60273ed7361d18d566ede8d66db962bafd702dd4db7fd30f23f" -dependencies = [ - "prost 0.11.9", - "prost-types 0.11.9", - "tokio", - "tonic", - "tonic-build", - "tower", -] - -[[package]] -name = "containerd-shim" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063d0e137d508846210c2f8b6c6dc3db9f1abd4c20b0a9aecdb962385dcb7899" -dependencies = [ - "cgroups-rs", - "command-fds", - "containerd-shim-protos", - "go-flag", - "lazy_static", - "libc", - "log", - "mio", - "nix 0.27.1", - "oci-spec", - "os_pipe", - "page_size", - "prctl", - "serde", - "serde_json", - "signal-hook", - "thiserror", - "time", - "windows-sys 0.48.0", -] - -[[package]] -name = "containerd-shim-protos" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "967dbd2804aceb398bd7d867410342d68b9d74c1fead823ad8353b3ab5f23eb7" -dependencies = [ - "protobuf 3.2.0", - "ttrpc", - "ttrpc-codegen", -] - -[[package]] -name = "containerd-shim-spin-v2" -version = "0.11.1" -dependencies = [ - "anyhow", - "containerd-shim-wasm", - "log", - "oci-spec", - "openssl", - "serde", - "serde_json", - "spin-app", - "spin-common", - "spin-core", - "spin-loader", - "spin-manifest", - "spin-oci", - "spin-redis-engine", - "spin-trigger", - "spin-trigger-http", - "tokio", - "trigger-sqs", - "url", - "wasmtime", -] - -[[package]] -name = "containerd-shim-wasm" -version = "0.4.0" -source = "git+https://github.com/containerd/runwasi?rev=c768e5b0919ca02903a301bf82a390489437dabe#c768e5b0919ca02903a301bf82a390489437dabe" -dependencies = [ - "anyhow", - "caps", - "chrono", - "containerd-client", - "containerd-shim", - "crossbeam", - "dbus", - "futures", - "git-version", - "libc", - "libcontainer", - "log", - "nix 0.27.1", - "oci-spec", - "protobuf 3.2.0", - "serde", - "serde_json", - "thiserror", - "tokio", - "ttrpc", - "wat", - "windows-sys 0.48.0", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" - -[[package]] -name = "cpp_demangle" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "cpufeatures" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" -dependencies = [ - "libc", -] - -[[package]] -name = "cranelift-bforest" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e7c0d51205b863591dd1e7aaa0fb69c2ea7bed48ffa63d6c4a848b07a35a732" -dependencies = [ - "cranelift-entity", -] - -[[package]] -name = "cranelift-codegen" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ffb467cbc25543e4c20d2ad669bf8275598047b03c89652ad5fe2a0f47fc0e1" -dependencies = [ - "bumpalo", - "cranelift-bforest", - "cranelift-codegen-meta", - "cranelift-codegen-shared", - "cranelift-control", - "cranelift-entity", - "cranelift-isle", - "gimli", - "hashbrown 0.14.3", - "log", - "regalloc2", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc7e74aed5c2b91e38d090653506afbd2cd3be1ff70593e2aa6bb82b3c6b77ff" -dependencies = [ - "cranelift-codegen-shared", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ff2dd24cce0775566da85770cb48aa58fef901cf2bff30275b42e7dbe62cbd5" - -[[package]] -name = "cranelift-control" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8bcf4d5c73bbca309edf3af2839b5218e5c74cfbf22b0ac492af8a1d11120d9" -dependencies = [ - "arbitrary", -] - -[[package]] -name = "cranelift-entity" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "286754159b1a685475d6a0b4710832f950d6f4846a817002e2c23ff001321a65" -dependencies = [ - "serde", - "serde_derive", -] - -[[package]] -name = "cranelift-frontend" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67150a1fef9857caba710f8c0c8223d640f02c0e5d1ebbfc75ed62912599cb6b" -dependencies = [ - "cranelift-codegen", - "log", - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cranelift-isle" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7ceea70d3e0d7f69df7657f99de902e32016731c5a8d2788c1df0215f00952" - -[[package]] -name = "cranelift-native" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707e5d9384ce4fa3c40af1abf4c3ec49857745cced5187593385f4a2c0b95445" -dependencies = [ - "cranelift-codegen", - "libc", - "target-lexicon", -] - -[[package]] -name = "cranelift-wasm" -version = "0.104.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d957e3ff2a14c2f974a66c22bfcedcd2bd0272af8dce4236869c3942f5a471" -dependencies = [ - "cranelift-codegen", - "cranelift-entity", - "cranelift-frontend", - "itertools 0.10.5", - "log", - "smallvec", - "wasmparser 0.118.2", - "wasmtime-types", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crossbeam" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176dc175b78f56c0f321911d9c8eb2b77a78a4860b9c19db83835fea1a46649b" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctrlc" -version = "3.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b467862cc8610ca6fc9a1532d7777cee0804e678ab45410897b9396495994a0b" -dependencies = [ - "nix 0.27.1", - "windows-sys 0.52.0", -] - -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "dbus" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb21987b9fb1613058ba3843121dd18b163b254d8a6e797e144cbac14d96d1b" -dependencies = [ - "libc", - "libdbus-sys", - "winapi", -] - -[[package]] -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "uuid", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derive-new" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3418329ca0ad70234b9735dc4ceed10af4df60eff9c8e7b06cb5e520d92c3535" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" -dependencies = [ - "derive_builder_macro 0.11.2", -] - -[[package]] -name = "derive_builder" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" -dependencies = [ - "derive_builder_macro 0.12.0", -] - -[[package]] -name = "derive_builder_core" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" -dependencies = [ - "derive_builder_core 0.11.2", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" -dependencies = [ - "derive_builder_core 0.12.0", - "syn 1.0.109", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "crypto-common", - "subtle", -] - -[[package]] -name = "directories-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" -dependencies = [ - "cfg-if 1.0.0", - "dirs-sys-next", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dkregistry" -version = "0.5.1-alpha.0" -source = "git+https://github.com/camallo/dkregistry-rs?rev=37acecb4b8139dd1b1cc83795442f94f90e1ffc5#37acecb4b8139dd1b1cc83795442f94f90e1ffc5" -dependencies = [ - "async-stream", - "base64 0.13.1", - "bytes", - "futures", - "http 0.2.11", - "libflate", - "log", - "mime", - "pin-project", - "regex", - "reqwest", - "serde", - "serde_ignored", - "serde_json", - "sha2", - "strum", - "strum_macros", - "tar", - "thiserror", - "tokio", - "url", -] - -[[package]] -name = "docker_credential" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bce43dd24da2e33c9b9664089bdf94aa8fe7a7c59fc67b6867db7c876925687" -dependencies = [ - "base64 0.10.1", - "serde", - "serde_json", -] - -[[package]] -name = "dotenvy" -version = "0.15.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" - -[[package]] -name = "dunce" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" - -[[package]] -name = "dyn-clone" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" - -[[package]] -name = "either" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encoding_rs" -version = "0.8.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "esaxx-rs" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6" - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "event-listener" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d93877bcde0eb80ca09131a08d23f0a5c18a620b01db137dba666d18cd9b30c2" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" -dependencies = [ - "concurrent-queue", - "parking", - "pin-project-lite", -] - -[[package]] -name = "event-listener-strategy" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" -dependencies = [ - "event-listener 4.0.3", - "pin-project-lite", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fallible-iterator" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" - -[[package]] -name = "fallible-streaming-iterator" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a" - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fastrand" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" - -[[package]] -name = "fd-lock" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947" -dependencies = [ - "cfg-if 1.0.0", - "rustix 0.38.30", - "windows-sys 0.52.0", -] - -[[package]] -name = "filetime" -version = "0.2.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.4.1", - "windows-sys 0.52.0", -] - -[[package]] -name = "finl_unicode" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6" - -[[package]] -name = "fixedbitset" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fs-set-times" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb" -dependencies = [ - "io-lifetimes 2.0.3", - "rustix 0.38.30", - "windows-sys 0.52.0", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "futures" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" - -[[package]] -name = "futures-executor" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", - "num_cpus", -] - -[[package]] -name = "futures-io" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand 1.9.0", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-lite" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" -dependencies = [ - "fastrand 2.0.1", - "futures-core", - "futures-io", - "parking", - "pin-project-lite", -] - -[[package]] -name = "futures-macro" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "futures-sink" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" - -[[package]] -name = "futures-task" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" - -[[package]] -name = "futures-util" -version = "0.3.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "fxprof-processed-profile" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" -dependencies = [ - "bitflags 2.4.1", - "debugid", - "fxhash", - "serde", - "serde_json", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getset" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e45727250e75cc04ff2846a66397da8ef2b3db8e40e0cef4df67950a07621eb9" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ggml" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "ggml-sys", - "memmap2", - "thiserror", -] - -[[package]] -name = "ggml-sys" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "cc", -] - -[[package]] -name = "gimli" -version = "0.28.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -dependencies = [ - "fallible-iterator 0.3.0", - "indexmap 2.1.0", - "stable_deref_trait", -] - -[[package]] -name = "git-version" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" -dependencies = [ - "git-version-macro", -] - -[[package]] -name = "git-version-macro" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "go-flag" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4a40c9ca507513f573aabaf6a8558173a1ac9aa1363d8de30c7f89b34f8d2b" -dependencies = [ - "cfg-if 0.1.10", -] - -[[package]] -name = "h2" -version = "0.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.11", - "indexmap 2.1.0", - "slab", - "tokio", - "tokio-util 0.7.10", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 1.0.0", - "indexmap 2.1.0", - "slab", - "tokio", - "tokio-util 0.7.10", - "tracing", -] - -[[package]] -name = "half" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" -dependencies = [ - "cfg-if 1.0.0", - "crunchy", -] - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hashlink" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7" -dependencies = [ - "hashbrown 0.14.3", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "home" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "http" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-auth" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643c9bbf6a4ea8a656d6b4cd53d34f79e3f841ad5203c1a55fb7d761923bc255" -dependencies = [ - "memchr", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.11", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" -dependencies = [ - "bytes", - "http 1.0.0", -] - -[[package]] -name = "http-body-util" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" -dependencies = [ - "bytes", - "futures-util", - "http 1.0.0", - "http-body 1.0.0", - "pin-project-lite", -] - -[[package]] -name = "http-types" -version = "2.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e9b187a72d63adbfba487f48095306ac823049cb504ee195541e91c7775f5ad" -dependencies = [ - "anyhow", - "async-channel 1.9.0", - "base64 0.13.1", - "futures-lite 1.13.0", - "infer", - "pin-project-lite", - "rand 0.7.3", - "serde", - "serde_json", - "serde_qs", - "serde_urlencoded", - "url", -] - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.23", - "http 0.2.11", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.5.5", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.2", - "http 1.0.0", - "http-body 1.0.0", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" -dependencies = [ - "http 0.2.11", - "hyper 0.14.28", - "log", - "rustls 0.20.9", - "rustls-native-certs", - "tokio", - "tokio-rustls 0.23.4", - "webpki-roots 0.22.6", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.11", - "hyper 0.14.28", - "log", - "rustls 0.21.10", - "rustls-native-certs", - "tokio", - "tokio-rustls 0.24.1", - "webpki-roots 0.25.3", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper 0.14.28", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper 0.14.28", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "hyper-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" -dependencies = [ - "bytes", - "futures-util", - "http 1.0.0", - "http-body 1.0.0", - "hyper 1.1.0", - "pin-project-lite", - "socket2 0.5.5", - "tokio", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.59" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows-core", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "id-arena" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown 0.14.3", - "serde", -] - -[[package]] -name = "indicatif" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d207dc617c7a380ab07ff572a6e52fa202a2a8f355860ac9c38e23f8196be1b" -dependencies = [ - "console", - "lazy_static", - "number_prefix", - "regex", -] - -[[package]] -name = "infer" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64e9829a50b42bb782c1df523f78d332fe371b10c661e78b7a3c34b0198e9fac" - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "io-extras" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c301e73fb90e8a29e600a9f402d095765f74310d582916a952f618836a1bd1ed" -dependencies = [ - "io-lifetimes 2.0.3", - "windows-sys 0.52.0", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" -dependencies = [ - "hermit-abi 0.3.3", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "io-lifetimes" -version = "2.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" - -[[package]] -name = "ipnet" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" - -[[package]] -name = "is-terminal" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" -dependencies = [ - "hermit-abi 0.3.3", - "rustix 0.38.30", - "windows-sys 0.52.0", -] - -[[package]] -name = "itertools" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f56a2d0bc861f9165be4eb3442afd3c236d8a98afd426f65d92324ae1091a484" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" - -[[package]] -name = "ittapi" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b996fe614c41395cdaedf3cf408a9534851090959d90d54a535f675550b64b1" -dependencies = [ - "anyhow", - "ittapi-sys", - "log", -] - -[[package]] -name = "ittapi-sys" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52f5385394064fa2c886205dba02598013ce83d3e92d33dbdc0c52fe0e7bf4fc" -dependencies = [ - "cc", -] - -[[package]] -name = "jobserver" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jwt" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6204285f77fe7d9784db3fdc449ecce1a0114927a51d5a41c4c7a292011c015f" -dependencies = [ - "base64 0.13.1", - "crypto-common", - "digest", - "hmac", - "serde", - "serde_json", - "sha2", -] - -[[package]] -name = "keyed_priority_queue" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee7893dab2e44ae5f9d0173f26ff4aa327c10b01b06a72b52dd9405b628640d" -dependencies = [ - "indexmap 2.1.0", -] - -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "libc" -version = "0.2.152" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" - -[[package]] -name = "libcgroups" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61a5d56267f6ee2386e6d49a0333eaf20eb04fca611e94644af7505bace5fd7f" -dependencies = [ - "fixedbitset 0.4.2", - "nix 0.27.1", - "oci-spec", - "procfs", - "serde", - "thiserror", - "tracing", -] - -[[package]] -name = "libcontainer" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63ffa9cc1f2e58ff183ab0a523d491ff0591a9191a74fcff283c9c1a6d11186" -dependencies = [ - "bitflags 2.4.1", - "caps", - "chrono", - "fastrand 2.0.1", - "futures", - "libc", - "libcgroups", - "libseccomp", - "nix 0.27.1", - "oci-spec", - "once_cell", - "prctl", - "procfs", - "protobuf 3.2.0", - "regex", - "rust-criu", - "safe-path", - "serde", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "libdbus-sys" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06085512b750d640299b79be4bad3d2fa90a9c00b1fd9e1b46364f66f0485c72" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "libflate" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ff4ae71b685bbad2f2f391fe74f6b7659a34871c08b210fdc039e43bee07d18" -dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", -] - -[[package]] -name = "libflate_lz77" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a52d3a8bfc85f250440e4424db7d857e241a3aebbbe301f3eb606ab15c39acbf" -dependencies = [ - "rle-decode-fast", -] - -[[package]] -name = "libloading" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" -dependencies = [ - "cfg-if 1.0.0", - "windows-sys 0.48.0", -] - -[[package]] -name = "libredox" -version = "0.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" -dependencies = [ - "bitflags 2.4.1", - "libc", - "redox_syscall 0.4.1", -] - -[[package]] -name = "libseccomp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21c57fd8981a80019807b7b68118618d29a87177c63d704fc96e6ecd003ae5b3" -dependencies = [ - "bitflags 1.3.2", - "libc", - "libseccomp-sys", - "pkg-config", -] - -[[package]] -name = "libseccomp-sys" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a7cbbd4ad467251987c6e5b47d53b11a5a05add08f2447a9e2d70aef1e0d138" - -[[package]] -name = "libsql" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43adbef635c87aaf72870e0a1a8cb39eefcc2c0b0386c75a9436ba6048548f07" -dependencies = [ - "async-trait", - "base64 0.21.7", - "bitflags 2.4.1", - "bytes", - "fallible-iterator 0.3.0", - "futures", - "http 0.2.11", - "hyper 0.14.28", - "hyper-rustls 0.24.2", - "libsql-sqlite3-parser", - "serde", - "serde_json", - "thiserror", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "libsql-sqlite3-parser" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600b1fc036f15466a4293adbf82d1c3ac7a22b865b5d501db325adeb8a116063" -dependencies = [ - "bitflags 2.4.1", - "cc", - "fallible-iterator 0.3.0", - "indexmap 2.1.0", - "log", - "memchr", - "phf", - "phf_codegen", - "phf_shared", - "smallvec", - "uncased", -] - -[[package]] -name = "libsqlite3-sys" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc22eff61b133b115c6e8c74e818c628d6d5e7a502afea6f64dee076dd94326" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519" - -[[package]] -name = "linux-raw-sys" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" - -[[package]] -name = "llm" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "llm-base", - "llm-bloom", - "llm-gpt2", - "llm-gptj", - "llm-gptneox", - "llm-llama", - "llm-mpt", - "serde", - "tracing", -] - -[[package]] -name = "llm-base" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "bytemuck", - "ggml", - "half", - "llm-samplers", - "memmap2", - "partial_sort", - "rand 0.8.5", - "regex", - "serde", - "serde_bytes", - "thiserror", - "tokenizers", - "tracing", -] - -[[package]] -name = "llm-bloom" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "llm-base", -] - -[[package]] -name = "llm-gpt2" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "bytemuck", - "llm-base", -] - -[[package]] -name = "llm-gptj" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "llm-base", -] - -[[package]] -name = "llm-gptneox" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "llm-base", -] - -[[package]] -name = "llm-llama" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "llm-base", - "tracing", -] - -[[package]] -name = "llm-mpt" -version = "0.2.0-dev" -source = "git+https://github.com/rustformers/llm?rev=2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663#2f6ffd4435799ceaa1d1bcb5a8790e5b3e0c5663" -dependencies = [ - "llm-base", -] - -[[package]] -name = "llm-samplers" -version = "0.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7553f60d113c9cdc6a5402456a31cd9a273bef79f6f16d8a4f7b4bedf5f754b2" -dependencies = [ - "anyhow", - "num-traits", - "rand 0.8.5", - "thiserror", -] - -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" -dependencies = [ - "value-bag", -] - -[[package]] -name = "lru" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" -dependencies = [ - "hashbrown 0.13.2", -] - -[[package]] -name = "lru" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2c024b41519440580066ba82aab04092b333e09066a5eb86c7c4890df31f22" -dependencies = [ - "hashbrown 0.14.3", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "macro_rules_attribute" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf0c9b980bf4f3a37fd7b1c066941dd1b1d0152ce6ee6e8fe8c49b9f6810d862" -dependencies = [ - "macro_rules_attribute-proc_macro", - "paste", -] - -[[package]] -name = "macro_rules_attribute-proc_macro" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58093314a45e00c77d5c508f76e77c3396afbbc0d01506e7fae47b018bac2b1d" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "maybe-owned" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" - -[[package]] -name = "md-5" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" -dependencies = [ - "cfg-if 1.0.0", - "digest", -] - -[[package]] -name = "memchr" -version = "2.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" - -[[package]] -name = "memfd" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" -dependencies = [ - "rustix 0.38.30", -] - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.48.0", -] - -[[package]] -name = "monostate" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "878c2a1f1c70e5724fa28f101ca787b6a7e8ad5c5e4ae4ca3b0fa4a419fa9075" -dependencies = [ - "monostate-impl", - "serde", -] - -[[package]] -name = "monostate-impl" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f686d68a09079e63b1d2c64aa305095887ce50565f00a922ebfaeeee0d9ba6ce" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "mysql_async" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6750b17ce50f8f112ef1a8394121090d47c596b56a6a17569ca680a9626e2ef2" -dependencies = [ - "bytes", - "crossbeam", - "flate2", - "futures-core", - "futures-sink", - "futures-util", - "keyed_priority_queue", - "lazy_static", - "lru 0.12.2", - "mio", - "mysql_common", - "native-tls", - "once_cell", - "pem", - "percent-encoding", - "pin-project", - "rand 0.8.5", - "serde", - "serde_json", - "socket2 0.5.5", - "thiserror", - "tokio", - "tokio-native-tls", - "tokio-util 0.7.10", - "twox-hash", - "url", -] - -[[package]] -name = "mysql_common" -version = "0.31.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06f19e4cfa0ab5a76b627cec2d81331c49b034988eaf302c3bafeada684eadef" -dependencies = [ - "base64 0.21.7", - "bindgen", - "bitflags 2.4.1", - "btoi", - "byteorder", - "bytes", - "cc", - "cmake", - "crc32fast", - "flate2", - "lazy_static", - "num-bigint", - "num-traits", - "rand 0.8.5", - "regex", - "saturating", - "serde", - "serde_json", - "sha1 0.10.6", - "sha2", - "smallvec", - "subprocess", - "thiserror", - "uuid", - "zstd 0.12.4", -] - -[[package]] -name = "native-tls" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" -dependencies = [ - "lazy_static", - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "nix" -version = "0.25.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if 1.0.0", - "libc", -] - -[[package]] -name = "nix" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b" -dependencies = [ - "bitflags 1.3.2", - "cfg-if 1.0.0", - "libc", - "memoffset 0.7.1", - "pin-utils", -] - -[[package]] -name = "nix" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053" -dependencies = [ - "bitflags 2.4.1", - "cfg-if 1.0.0", - "libc", - "memoffset 0.9.0", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num-bigint" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.3", - "libc", -] - -[[package]] -name = "num_threads" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" -dependencies = [ - "libc", -] - -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - -[[package]] -name = "object" -version = "0.32.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" -dependencies = [ - "crc32fast", - "hashbrown 0.14.3", - "indexmap 2.1.0", - "memchr", -] - -[[package]] -name = "oci-distribution" -version = "0.10.0" -source = "git+https://github.com/fermyon/oci-distribution?rev=63cbb0925775e0c9c870195cad1d50ac8707a264#63cbb0925775e0c9c870195cad1d50ac8707a264" -dependencies = [ - "bytes", - "chrono", - "futures-util", - "http 0.2.11", - "http-auth", - "jwt", - "lazy_static", - "olpc-cjson", - "regex", - "reqwest", - "serde", - "serde_json", - "sha2", - "thiserror", - "tokio", - "tracing", - "unicase", -] - -[[package]] -name = "oci-spec" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8384f8eff13954bafafba991f1910779020456f9694de25e81a13da5b7de6309" -dependencies = [ - "derive_builder 0.12.0", - "getset", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "olpc-cjson" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d637c9c15b639ccff597da8f4fa968300651ad2f1e968aefc3b4927a6fb2027a" -dependencies = [ - "serde", - "serde_json", - "unicode-normalization", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "onig" -version = "6.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c4b31c8722ad9171c6d77d3557db078cab2bd50afcc9d09c8b315c59df8ca4f" -dependencies = [ - "bitflags 1.3.2", - "libc", - "once_cell", - "onig_sys", -] - -[[package]] -name = "onig_sys" -version = "69.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b829e3d7e9cc74c7e315ee8edb185bf4190da5acde74afd7fc59c35b1f086e7" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "openssl" -version = "0.10.62" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cde4d2d9200ad5909f8dac647e29482e07c3a35de8a13fce7c9c7747ad9f671" -dependencies = [ - "bitflags 2.4.1", - "cfg-if 1.0.0", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-src" -version = "300.2.1+3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fe476c29791a5ca0d1273c697e96085bbabbbea2ef7afd5617e78a4b40332d3" -dependencies = [ - "cc", -] - -[[package]] -name = "openssl-sys" -version = "0.9.98" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1665caf8ab2dc9aef43d1c0023bd904633a6a05cb30b0ad59bec2ae986e57a7" -dependencies = [ - "cc", - "libc", - "openssl-src", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "os_pipe" -version = "1.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "os_str_bytes" -version = "6.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1" - -[[package]] -name = "ouroboros" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50b637ffd883b2733a8483599fb6136b9dcedaa1850f7ac08b9b6f9f2061208" -dependencies = [ - "aliasable", - "ouroboros_macro", - "static_assertions", -] - -[[package]] -name = "ouroboros_macro" -version = "0.18.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3633d65683f13b9bcfaa3150880b018899fb0e5d0542f4adaea4f503fdb5eabf" -dependencies = [ - "heck 0.4.1", - "itertools 0.12.0", - "proc-macro2", - "proc-macro2-diagnostics", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "outbound-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "http 0.2.11", - "reqwest", - "spin-app", - "spin-core", - "spin-locked-app", - "spin-outbound-networking", - "spin-world", - "terminal", - "tracing", - "url", -] - -[[package]] -name = "outbound-mysql" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "flate2", - "mysql_async", - "mysql_common", - "spin-app", - "spin-core", - "spin-outbound-networking", - "spin-world", - "table", - "tokio", - "tracing", - "url", -] - -[[package]] -name = "outbound-pg" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "native-tls", - "postgres-native-tls", - "spin-app", - "spin-core", - "spin-outbound-networking", - "spin-world", - "table", - "tokio", - "tokio-postgres", - "tracing", -] - -[[package]] -name = "outbound-redis" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "redis", - "spin-app", - "spin-core", - "spin-outbound-networking", - "spin-world", - "table", - "tokio", - "tracing", -] - -[[package]] -name = "outref" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "page_size" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "redox_syscall 0.4.1", - "smallvec", - "windows-targets 0.48.5", -] - -[[package]] -name = "partial_sort" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7924d1d0ad836f665c9065e26d016c673ece3993f30d340068b16f282afc1156" - -[[package]] -name = "password-hash" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" -dependencies = [ - "base64ct", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" - -[[package]] -name = "path-absolutize" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5" -dependencies = [ - "path-dedot", -] - -[[package]] -name = "path-dedot" -version = "3.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397" -dependencies = [ - "once_cell", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest", - "hmac", - "password-hash", - "sha2", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "pem" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310" -dependencies = [ - "base64 0.21.7", - "serde", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "petgraph" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" -dependencies = [ - "fixedbitset 0.2.0", - "indexmap 1.9.3", -] - -[[package]] -name = "petgraph" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap 2.1.0", -] - -[[package]] -name = "phf" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" -dependencies = [ - "phf_shared", - "rand 0.8.5", -] - -[[package]] -name = "phf_shared" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" -dependencies = [ - "siphasher", - "uncased", -] - -[[package]] -name = "pin-project" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "piper" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4" -dependencies = [ - "atomic-waker", - "fastrand 2.0.1", - "futures-io", -] - -[[package]] -name = "pkg-config" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" - -[[package]] -name = "polling" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" -dependencies = [ - "autocfg", - "bitflags 1.3.2", - "cfg-if 1.0.0", - "concurrent-queue", - "libc", - "log", - "pin-project-lite", - "windows-sys 0.48.0", -] - -[[package]] -name = "polling" -version = "3.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf63fa624ab313c11656b4cda960bfc46c410187ad493c41f6ba2d8c1e991c9e" -dependencies = [ - "cfg-if 1.0.0", - "concurrent-queue", - "pin-project-lite", - "rustix 0.38.30", - "tracing", - "windows-sys 0.52.0", -] - -[[package]] -name = "postgres-native-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d442770e2b1e244bb5eb03b31c79b65bb2568f413b899eaba850fa945a65954" -dependencies = [ - "futures", - "native-tls", - "tokio", - "tokio-native-tls", - "tokio-postgres", -] - -[[package]] -name = "postgres-protocol" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b6c5ef183cd3ab4ba005f1ca64c21e8bd97ce4699cfea9e8d9a2c4958ca520" -dependencies = [ - "base64 0.21.7", - "byteorder", - "bytes", - "fallible-iterator 0.2.0", - "hmac", - "md-5", - "memchr", - "rand 0.8.5", - "sha2", - "stringprep", -] - -[[package]] -name = "postgres-types" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2234cdee9408b523530a9b6d2d6b373d1db34f6a8e51dc03ded1828d7fb67c" -dependencies = [ - "bytes", - "fallible-iterator 0.2.0", - "postgres-protocol", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "prctl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "059a34f111a9dee2ce1ac2826a68b24601c4298cfeb1a587c3cb493d5ab46f52" -dependencies = [ - "libc", - "nix 0.27.1", -] - -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2", - "syn 1.0.109", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro2" -version = "1.0.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proc-macro2-diagnostics" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", - "version_check", - "yansi", -] - -[[package]] -name = "procfs" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "731e0d9356b0c25f16f33b5be79b1c57b562f141ebfcdb0ad8ac2c13a24293b4" -dependencies = [ - "bitflags 2.4.1", - "chrono", - "flate2", - "hex", - "lazy_static", - "procfs-core", - "rustix 0.38.30", -] - -[[package]] -name = "procfs-core" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" -dependencies = [ - "bitflags 2.4.1", - "chrono", - "hex", -] - -[[package]] -name = "prost" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5e2533f59d08fcf364fd374ebda0692a70bd6d7e66ef97f306f45c6c5d8020" -dependencies = [ - "bytes", - "prost-derive 0.8.0", -] - -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive 0.11.9", -] - -[[package]] -name = "prost-build" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "355f634b43cdd80724ee7848f95770e7e70eefa6dcf14fea676216573b8fd603" -dependencies = [ - "bytes", - "heck 0.3.3", - "itertools 0.10.5", - "log", - "multimap", - "petgraph 0.5.1", - "prost 0.8.0", - "prost-types 0.8.0", - "tempfile", - "which", -] - -[[package]] -name = "prost-build" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" -dependencies = [ - "bytes", - "heck 0.4.1", - "itertools 0.10.5", - "lazy_static", - "log", - "multimap", - "petgraph 0.6.4", - "prettyplease", - "prost 0.11.9", - "prost-types 0.11.9", - "regex", - "syn 1.0.109", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "600d2f334aa05acb02a755e217ef1ab6dea4d51b58b7846588b747edec04efba" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools 0.10.5", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "prost-types" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "603bbd6394701d13f3f25aada59c7de9d35a6a5887cfc156181234a44002771b" -dependencies = [ - "bytes", - "prost 0.8.0", -] - -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost 0.11.9", -] - -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" - -[[package]] -name = "protobuf" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55bad9126f378a853655831eb7363b7b01b81d19f8cb1218861086ca4a1a61e" -dependencies = [ - "once_cell", - "protobuf-support", - "thiserror", -] - -[[package]] -name = "protobuf-codegen" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033460afb75cf755fcfc16dfaed20b86468082a2ea24e05ac35ab4a099a017d6" -dependencies = [ - "protobuf 2.28.0", -] - -[[package]] -name = "protobuf-codegen" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd418ac3c91caa4032d37cb80ff0d44e2ebe637b2fb243b6234bf89cdac4901" -dependencies = [ - "anyhow", - "once_cell", - "protobuf 3.2.0", - "protobuf-parse", - "regex", - "tempfile", - "thiserror", -] - -[[package]] -name = "protobuf-parse" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d39b14605eaa1f6a340aec7f320b34064feb26c93aec35d6a9a2272a8ddfa49" -dependencies = [ - "anyhow", - "indexmap 1.9.3", - "log", - "protobuf 3.2.0", - "protobuf-support", - "tempfile", - "thiserror", - "which", -] - -[[package]] -name = "protobuf-support" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5d4d7b8601c814cfb36bcebb79f0e61e45e1e93640cf778837833bbed05c372" -dependencies = [ - "thiserror", -] - -[[package]] -name = "psm" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" -dependencies = [ - "cc", -] - -[[package]] -name = "quote" -version = "1.0.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.12", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rayon" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c27db03db7734835b3f53954b534c91069375ce6ccaa2e065441e07d9b6cdb1" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-cond" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1259362c9065e5ea39a789ef40b1e3fd934c94beb7b5ab3ac6629d3b5e7cb7" -dependencies = [ - "either", - "itertools 0.8.2", - "rayon", -] - -[[package]] -name = "rayon-core" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce3fb6ad83f861aac485e76e1985cd109d9a3713802152be56c3b1f0e0658ed" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redis" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "152f3863635cbb76b73bc247845781098302c6c9ad2060e1a9a7de56840346b6" -dependencies = [ - "async-trait", - "bytes", - "combine", - "futures-util", - "itoa", - "native-tls", - "percent-encoding", - "pin-project-lite", - "ryu", - "sha1 0.6.1", - "tokio", - "tokio-native-tls", - "tokio-util 0.7.10", - "url", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_users" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" -dependencies = [ - "getrandom 0.2.12", - "libredox", - "thiserror", -] - -[[package]] -name = "regalloc2" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" -dependencies = [ - "hashbrown 0.13.2", - "log", - "rustc-hash", - "slice-group-by", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" -dependencies = [ - "aho-corasick 1.1.2", - "memchr", - "regex-automata 0.4.3", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" -dependencies = [ - "aho-corasick 1.1.2", - "memchr", - "regex-syntax 0.8.2", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" - -[[package]] -name = "regex-syntax" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" - -[[package]] -name = "reqwest" -version = "0.11.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b1ae8d9ac08420c66222fb9096fc5de435c3c48542bc5336c51892cffafb41" -dependencies = [ - "async-compression", - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.23", - "http 0.2.11", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-rustls 0.24.2", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.10", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "system-configuration", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.24.1", - "tokio-util 0.7.10", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots 0.25.3", - "winreg", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" -dependencies = [ - "cc", - "getrandom 0.2.12", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.48.0", -] - -[[package]] -name = "rle-decode-fast" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3582f63211428f83597b51b2ddb88e2a91a9d52d12831f9d08f5e624e8977422" - -[[package]] -name = "rusqlite" -version = "0.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549b9d036d571d42e6e85d1c1425e2ac83491075078ca9a15be021c56b1641f2" -dependencies = [ - "bitflags 2.4.1", - "fallible-iterator 0.2.0", - "fallible-streaming-iterator", - "hashlink", - "libsqlite3-sys", - "smallvec", -] - -[[package]] -name = "rust-criu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4737b28406b3395359f485127073117a11cedc8942738b69ba6ab9a79432acbc" -dependencies = [ - "anyhow", - "libc", - "protobuf 3.2.0", - "protobuf-codegen 3.2.0", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver", -] - -[[package]] -name = "rustify" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c02e25271068de581e03ac3bb44db60165ff1a10d92b9530192ccb898bc706" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "http 0.2.11", - "reqwest", - "rustify_derive", - "serde", - "serde_json", - "serde_urlencoded", - "thiserror", - "tracing", - "url", -] - -[[package]] -name = "rustify_derive" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58135536c18c04f4634bedad182a3f41baf33ef811cc38a3ec7b7061c57134c8" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "serde_urlencoded", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "rustix" -version = "0.37.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2" -dependencies = [ - "bitflags 1.3.2", - "errno", - "io-lifetimes 1.0.11", - "libc", - "linux-raw-sys 0.3.8", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustix" -version = "0.38.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322394588aaf33c24007e8bb3238ee3e4c5c09c084ab32bc73890b99ff326bca" -dependencies = [ - "bitflags 2.4.1", - "errno", - "itoa", - "libc", - "linux-raw-sys 0.4.12", - "once_cell", - "windows-sys 0.52.0", -] - -[[package]] -name = "rustls" -version = "0.20.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" -dependencies = [ - "log", - "ring 0.16.20", - "sct", - "webpki", -] - -[[package]] -name = "rustls" -version = "0.21.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" -dependencies = [ - "log", - "ring 0.17.7", - "rustls-webpki", - "sct", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ee86d63972a7c661d1536fefe8c3c8407321c3df668891286de28abcd087360" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.7", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" - -[[package]] -name = "ryu" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" - -[[package]] -name = "safe-path" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "980abdd3220aa19b67ca3ea07b173ca36383f18ae48cde696d90c8af39447ffb" -dependencies = [ - "libc", -] - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "sanitize-filename" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c502bdb638f1396509467cb0580ef3b29aa2a45c5d43e5d84928241280296c" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "saturating" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ece8e78b2f38ec51c51f5d475df0a7187ba5111b2a28bdc761ee05b075d40a71" - -[[package]] -name = "schannel" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" -dependencies = [ - "windows-sys 0.52.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.7", - "untrusted 0.9.0", -] - -[[package]] -name = "security-framework" -version = "2.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" - -[[package]] -name = "serde" -version = "1.0.195" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_bytes" -version = "0.11.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.195" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "serde_ignored" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8e319a36d1b52126a0d608f24e93b2d81297091818cd70625fcf50a15d84ddf" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_json" -version = "1.0.111" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_qs" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7715380eec75f029a4ef7de39a9200e0a63823176b759d055b613f5a87df6a6" -dependencies = [ - "percent-encoding", - "serde", - "thiserror", -] - -[[package]] -name = "serde_spanned" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha1" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" -dependencies = [ - "sha1_smol", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest", -] - -[[package]] -name = "sha1_smol" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shellexpand" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" -dependencies = [ - "dirs 4.0.0", -] - -[[package]] -name = "shellexpand" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" -dependencies = [ - "dirs 5.0.1", -] - -[[package]] -name = "shlex" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" - -[[package]] -name = "signal-hook" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "simd-abstraction" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" -dependencies = [ - "outref", -] - -[[package]] -name = "siphasher" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slice-group-by" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" - -[[package]] -name = "smallvec" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" - -[[package]] -name = "socket2" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "spdx" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bde1398b09b9f93fc2fc9b9da86e362693e999d3a54a8ac47a99a5a73f638b" -dependencies = [ - "smallvec", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spin-app" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "ouroboros", - "serde", - "serde_json", - "spin-core", - "spin-locked-app", - "spin-serde", - "thiserror", -] - -[[package]] -name = "spin-common" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "dirs 4.0.0", - "sha2", - "tempfile", - "tokio", - "url", -] - -[[package]] -name = "spin-componentize" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin-componentize?rev=191789170abde10cd55590466c0660dd6c7d472a#191789170abde10cd55590466c0660dd6c7d472a" -dependencies = [ - "anyhow", - "wasm-encoder 0.35.0", - "wasmparser 0.115.0", - "wit-component", - "wit-parser 0.12.2", -] - -[[package]] -name = "spin-core" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "cap-primitives", - "cap-std", - "crossbeam-channel", - "io-extras", - "rustix 0.37.27", - "system-interface", - "tokio", - "tracing", - "wasi-common", - "wasmtime", - "wasmtime-wasi", - "wasmtime-wasi-http", -] - -[[package]] -name = "spin-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "http 1.0.0", - "http-body-util", - "hyper 1.1.0", - "indexmap 1.9.3", - "percent-encoding", - "serde", - "spin-app", - "spin-locked-app", - "tracing", - "wasmtime-wasi-http", -] - -[[package]] -name = "spin-key-value" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "lru 0.9.0", - "spin-app", - "spin-core", - "spin-world", - "table", - "tokio", - "tracing", -] - -[[package]] -name = "spin-key-value-azure" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "azure_data_cosmos", - "futures", - "serde", - "spin-core", - "spin-key-value", - "tokio", - "url", -] - -[[package]] -name = "spin-key-value-redis" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "redis", - "spin-core", - "spin-key-value", - "spin-world", - "tokio", - "url", -] - -[[package]] -name = "spin-key-value-sqlite" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "once_cell", - "rusqlite", - "spin-core", - "spin-key-value", - "spin-world", - "tokio", -] - -[[package]] -name = "spin-llm" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "bytesize", - "llm", - "spin-app", - "spin-core", - "spin-world", -] - -[[package]] -name = "spin-llm-remote-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "http 0.2.11", - "llm", - "reqwest", - "serde", - "serde_json", - "spin-core", - "spin-llm", - "spin-world", - "tracing", -] - -[[package]] -name = "spin-loader" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "dirs 4.0.0", - "dunce", - "futures", - "glob", - "itertools 0.10.5", - "lazy_static", - "mime_guess", - "outbound-http", - "path-absolutize", - "regex", - "reqwest", - "semver", - "serde", - "serde_json", - "sha2", - "shellexpand 3.1.0", - "spin-common", - "spin-locked-app", - "spin-manifest", - "spin-outbound-networking", - "tempfile", - "terminal", - "thiserror", - "tokio", - "tokio-util 0.6.10", - "toml 0.8.8", - "tracing", - "walkdir", -] - -[[package]] -name = "spin-locked-app" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "ouroboros", - "serde", - "serde_json", - "spin-serde", - "thiserror", -] - -[[package]] -name = "spin-manifest" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "indexmap 1.9.3", - "serde", - "spin-serde", - "terminal", - "thiserror", - "toml 0.8.8", - "url", -] - -[[package]] -name = "spin-oci" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-compression", - "async-tar", - "base64 0.21.7", - "dirs 4.0.0", - "dkregistry", - "docker_credential", - "futures-util", - "oci-distribution", - "reqwest", - "serde", - "serde_json", - "spin-common", - "spin-loader", - "spin-locked-app", - "spin-manifest", - "tempfile", - "tokio", - "tokio-util 0.7.10", - "tracing", - "walkdir", -] - -[[package]] -name = "spin-outbound-networking" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "ipnet", - "spin-locked-app", - "terminal", - "url", - "urlencoding", -] - -[[package]] -name = "spin-redis-engine" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "futures", - "redis", - "serde", - "spin-app", - "spin-core", - "spin-trigger", - "spin-world", - "tracing", -] - -[[package]] -name = "spin-serde" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "base64 0.21.7", - "serde", -] - -[[package]] -name = "spin-sqlite" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "spin-app", - "spin-core", - "spin-world", - "table", - "tokio", -] - -[[package]] -name = "spin-sqlite-inproc" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "once_cell", - "rand 0.8.5", - "rusqlite", - "spin-sqlite", - "spin-world", - "tokio", -] - -[[package]] -name = "spin-sqlite-libsql" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "libsql", - "rusqlite", - "spin-sqlite", - "spin-world", - "sqlparser", - "tokio", -] - -[[package]] -name = "spin-trigger" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "clap", - "ctrlc", - "dirs 4.0.0", - "futures", - "indexmap 1.9.3", - "ipnet", - "outbound-http", - "outbound-mysql", - "outbound-pg", - "outbound-redis", - "sanitize-filename", - "serde", - "serde_json", - "spin-app", - "spin-common", - "spin-componentize", - "spin-core", - "spin-key-value", - "spin-key-value-azure", - "spin-key-value-redis", - "spin-key-value-sqlite", - "spin-llm", - "spin-llm-remote-http", - "spin-loader", - "spin-manifest", - "spin-outbound-networking", - "spin-sqlite", - "spin-sqlite-inproc", - "spin-sqlite-libsql", - "spin-variables", - "spin-world", - "terminal", - "tokio", - "toml 0.5.11", - "tracing", - "url", - "wasmtime", - "wasmtime-wasi", - "wasmtime-wasi-http", -] - -[[package]] -name = "spin-trigger-http" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "clap", - "futures", - "futures-util", - "http 1.0.0", - "http-body-util", - "hyper 1.1.0", - "hyper-util", - "indexmap 1.9.3", - "outbound-http", - "percent-encoding", - "rustls-pemfile 0.3.0", - "serde", - "serde_json", - "spin-app", - "spin-core", - "spin-http", - "spin-outbound-networking", - "spin-trigger", - "spin-world", - "terminal", - "tls-listener", - "tokio", - "tokio-rustls 0.23.4", - "tracing", - "url", - "wasi-common", - "wasmtime", - "wasmtime-wasi", - "wasmtime-wasi-http", -] - -[[package]] -name = "spin-variables" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "anyhow", - "async-trait", - "dotenvy", - "once_cell", - "serde", - "spin-app", - "spin-core", - "spin-world", - "thiserror", - "tokio", - "vaultrs", -] - -[[package]] -name = "spin-world" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "wasmtime", -] - -[[package]] -name = "spm_precompiled" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5851699c4033c63636f7ea4cf7b7c1f1bf06d0cc03cfb42e711de5a5c46cf326" -dependencies = [ - "base64 0.13.1", - "nom", - "serde", - "unicode-segmentation", -] - -[[package]] -name = "sptr" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" - -[[package]] -name = "sqlparser" -version = "0.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3706eefb17039056234df6b566b0014f303f867f2656108334a55b8096f59" -dependencies = [ - "log", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "stringprep" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6" -dependencies = [ - "finl_unicode", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cae14b91c7d11c9a851d3fbc80a963198998c2a64eec840477fa92d8ce9b70bb" - -[[package]] -name = "strum_macros" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb0dc7ee9c15cea6199cde9a127fa16a4c5819af85395457ad72d68edc85a38" -dependencies = [ - "heck 0.3.3", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "subprocess" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "subtle" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.48" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "unicode-xid", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "system-interface" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0682e006dd35771e392a6623ac180999a9a854b1d4a6c12fb2e804941c2b1f58" -dependencies = [ - "bitflags 2.4.1", - "cap-fs-ext", - "cap-std", - "fd-lock", - "io-lifetimes 2.0.3", - "rustix 0.38.30", - "windows-sys 0.52.0", - "winx", -] - -[[package]] -name = "table" -version = "2.2.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" - -[[package]] -name = "tar" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b16afcea1f22891c49a00c751c7b63b2233284064f11a200fc624137c51e2ddb" -dependencies = [ - "filetime", - "libc", - "xattr 1.2.0", -] - -[[package]] -name = "target-lexicon" -version = "0.12.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" - -[[package]] -name = "tempfile" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" -dependencies = [ - "cfg-if 1.0.0", - "fastrand 2.0.1", - "redox_syscall 0.4.1", - "rustix 0.38.30", - "windows-sys 0.52.0", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "terminal" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.2.0#eebfae1d6de6a166da16ec8858332f4cc3b6c557" -dependencies = [ - "atty", - "once_cell", - "termcolor", -] - -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - -[[package]] -name = "thiserror" -version = "1.0.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if 1.0.0", - "once_cell", -] - -[[package]] -name = "time" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" -dependencies = [ - "deranged", - "itoa", - "libc", - "num_threads", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" -dependencies = [ - "time-core", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tls-listener" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e8a215badde081a06ee0a7fbc9c9f0d580c022fbdc547065f62103aef71e178" -dependencies = [ - "futures-util", - "hyper 0.14.28", - "pin-project-lite", - "thiserror", - "tokio", - "tokio-rustls 0.23.4", -] - -[[package]] -name = "tokenizers" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aea68938177975ab09da68552b720eac941779ff386baceaf77e0f5f9cea645f" -dependencies = [ - "aho-corasick 0.7.20", - "cached-path", - "derive_builder 0.12.0", - "dirs 4.0.0", - "esaxx-rs", - "getrandom 0.2.12", - "itertools 0.9.0", - "lazy_static", - "log", - "macro_rules_attribute", - "monostate", - "onig", - "paste", - "rand 0.8.5", - "rayon", - "rayon-cond", - "regex", - "regex-syntax 0.7.5", - "reqwest", - "serde", - "serde_json", - "spm_precompiled", - "thiserror", - "unicode-normalization-alignments", - "unicode-segmentation", - "unicode_categories", -] - -[[package]] -name = "tokio" -version = "1.35.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "num_cpus", - "parking_lot", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.5.5", - "tokio-macros", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-macros" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-postgres" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d340244b32d920260ae7448cb72b6e238bddc3d4f7603394e7dd46ed8e48f5b8" -dependencies = [ - "async-trait", - "byteorder", - "bytes", - "fallible-iterator 0.2.0", - "futures-channel", - "futures-util", - "log", - "parking_lot", - "percent-encoding", - "phf", - "pin-project-lite", - "postgres-protocol", - "postgres-types", - "rand 0.8.5", - "socket2 0.5.5", - "tokio", - "tokio-util 0.7.10", - "whoami", -] - -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.9", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.10", - "tokio", -] - -[[package]] -name = "tokio-scoped" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4beb8ba13bc53ac53ce1d52b42f02e5d8060f0f42138862869beb769722b256" -dependencies = [ - "tokio", - "tokio-stream", -] - -[[package]] -name = "tokio-stream" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.6.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "serde", -] - -[[package]] -name = "toml" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a195ec8c9da26928f773888e0742ca3ca1040c6cd859c919c9f59c1954ab35" -dependencies = [ - "indexmap 2.1.0", - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit", -] - -[[package]] -name = "toml_datetime" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34d383cd00a163b4a5b85053df514d45bc330f6de7737edfe0a93311d1eaa03" -dependencies = [ - "indexmap 2.1.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow", -] - -[[package]] -name = "tonic" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3082666a3a6433f7f511c7192923fa1fe07c69332d3c6a2e6bb040b569199d5a" -dependencies = [ - "async-trait", - "axum", - "base64 0.21.7", - "bytes", - "futures-core", - "futures-util", - "h2 0.3.23", - "http 0.2.11", - "http-body 0.4.6", - "hyper 0.14.28", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost 0.11.9", - "tokio", - "tokio-stream", - "tower", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tonic-build" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6fdaae4c2c638bb70fe42803a26fbd6fc6ac8c72f5c59f67ecc2a2dcabf4b07" -dependencies = [ - "prettyplease", - "proc-macro2", - "prost-build 0.11.9", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "indexmap 1.9.3", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util 0.7.10", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "tracing-core" -version = "0.1.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", -] - -[[package]] -name = "trigger-sqs" -version = "0.6.0" -source = "git+https://github.com/fermyon/spin-trigger-sqs?tag=v0.6.0#61e355aab257279c033b19e766d5d470b6ef343c" -dependencies = [ - "anyhow", - "async-trait", - "aws-config", - "aws-sdk-sqs", - "clap", - "futures", - "is-terminal", - "serde", - "spin-core", - "spin-trigger", - "tokio", - "tokio-scoped", - "tracing", - "tracing-subscriber", - "wasmtime", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "ttrpc" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ea338db445bee75c596cf8a478fbfcefad5a943c9e92a7e1c805c65ed39551" -dependencies = [ - "byteorder", - "crossbeam", - "libc", - "log", - "nix 0.26.4", - "protobuf 3.2.0", - "protobuf-codegen 3.2.0", - "thiserror", - "windows-sys 0.48.0", -] - -[[package]] -name = "ttrpc-codegen" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94d7f7631d7a9ebed715a47cd4cb6072cbc7ae1d4ec01598971bbec0024340c2" -dependencies = [ - "protobuf 2.28.0", - "protobuf-codegen 3.2.0", - "protobuf-support", - "ttrpc-compiler", -] - -[[package]] -name = "ttrpc-compiler" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0672eb06e5663ad190c7b93b2973f5d730259859b62e4e3381301a12a7441107" -dependencies = [ - "derive-new", - "prost 0.8.0", - "prost-build 0.8.0", - "prost-types 0.8.0", - "protobuf 2.28.0", - "protobuf-codegen 2.28.0", - "tempfile", -] - -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if 1.0.0", - "rand 0.8.5", - "static_assertions", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "uncased" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b9bc53168a4be7402ab86c3aad243a84dd7381d09be0eddc81280c1da95ca68" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-normalization-alignments" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43f613e4fa046e69818dd287fdc4bc78175ff20331479dab6e1b0f98d57062de" -dependencies = [ - "smallvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-width" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "unicode_categories" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "urlencoding" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" - -[[package]] -name = "uuid" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" -dependencies = [ - "getrandom 0.2.12", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "value-bag" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cdbaf5e132e593e9fc1de6a15bbec912395b11fb9719e061cf64f804524c503" - -[[package]] -name = "vaultrs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267f958930e08323a44c12e6c5461f3eaaa16d88785e9ec8550215b8aafc3d0b" -dependencies = [ - "async-trait", - "bytes", - "derive_builder 0.11.2", - "http 0.2.11", - "reqwest", - "rustify", - "rustify_derive", - "serde", - "serde_json", - "thiserror", - "tracing", - "url", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "waker-fn" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690" - -[[package]] -name = "walkdir" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasi-cap-std-sync" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "025e842ba390587e523785ff58bd54fbbf1781b8d3072bc9aba4dc0b809f69da" -dependencies = [ - "anyhow", - "async-trait", - "cap-fs-ext", - "cap-rand", - "cap-std", - "cap-time-ext", - "fs-set-times", - "io-extras", - "io-lifetimes 2.0.3", - "once_cell", - "rustix 0.38.30", - "system-interface", - "tracing", - "wasi-common", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasi-common" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da4d4023cc65b3615590d38db0afb79234de09b3bb89cb0d8f83bdee9f5c28a8" -dependencies = [ - "anyhow", - "bitflags 2.4.1", - "cap-rand", - "cap-std", - "io-extras", - "log", - "rustix 0.38.30", - "thiserror", - "tracing", - "wasmtime", - "wiggle", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasi-tokio" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c97de58a5b89e9ab479a2f9e17e9eb41d0e0156e3c979b2e7f00e9499d2e97b7" -dependencies = [ - "anyhow", - "cap-std", - "io-extras", - "io-lifetimes 2.0.3", - "rustix 0.38.30", - "tokio", - "wasi-cap-std-sync", - "wasi-common", - "wiggle", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" -dependencies = [ - "cfg-if 1.0.0", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.48", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" -dependencies = [ - "cfg-if 1.0.0", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.90" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" - -[[package]] -name = "wasm-encoder" -version = "0.35.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca90ba1b5b0a70d3d49473c5579951f3bddc78d47b59256d2f9d4922b150aca" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-encoder" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-encoder" -version = "0.38.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-encoder" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "111495d6204760238512f57a9af162f45086504da332af210f2f75dd80b34f1d" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-metadata" -version = "0.10.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "818931c85b1d197909699d36c509fa89550ccfa0d66932ba3c1726faddb4d0c7" -dependencies = [ - "anyhow", - "indexmap 2.1.0", - "serde", - "serde_derive", - "serde_json", - "spdx", - "wasm-encoder 0.39.0", - "wasmparser 0.119.0", -] - -[[package]] -name = "wasm-streams" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmparser" -version = "0.115.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e06c0641a4add879ba71ccb3a1e4278fd546f76f1eafb21d8f7b07733b547cd5" -dependencies = [ - "indexmap 2.1.0", - "semver", -] - -[[package]] -name = "wasmparser" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" -dependencies = [ - "indexmap 2.1.0", - "semver", -] - -[[package]] -name = "wasmparser" -version = "0.118.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77f1154f1ab868e2a01d9834a805faca7bf8b50d041b4ca714d005d0dab1c50c" -dependencies = [ - "indexmap 2.1.0", - "semver", -] - -[[package]] -name = "wasmparser" -version = "0.119.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c35daf77afb4f9b14016625144a391085ec2ca99ca9cc53ed291bb53ab5278d" -dependencies = [ - "bitflags 2.4.1", - "indexmap 2.1.0", - "semver", -] - -[[package]] -name = "wasmprinter" -version = "0.2.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac2a7745372074e5573e365e17100f5a26058740576313784ef03fb900ea8d2" -dependencies = [ - "anyhow", - "wasmparser 0.119.0", -] - -[[package]] -name = "wasmtime" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb6aa966be38f613954c3debe7ba6c7a02ffd0537432be438da0b038955cdf" -dependencies = [ - "anyhow", - "async-trait", - "bincode", - "bumpalo", - "cfg-if 1.0.0", - "encoding_rs", - "fxprof-processed-profile", - "indexmap 2.1.0", - "libc", - "log", - "object", - "once_cell", - "paste", - "rayon", - "serde", - "serde_derive", - "serde_json", - "target-lexicon", - "wasm-encoder 0.38.1", - "wasmparser 0.118.2", - "wasmtime-cache", - "wasmtime-component-macro", - "wasmtime-component-util", - "wasmtime-cranelift", - "wasmtime-environ", - "wasmtime-fiber", - "wasmtime-jit", - "wasmtime-runtime", - "wasmtime-winch", - "wat", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-asm-macros" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1495ef4d46aec14f967b672e946e391dd8a14a443cda3d5e0779ff67fb6e28d" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "wasmtime-cache" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2de1b065bdbaca3df9e7e9f70eb129e326a99d971b16d666acd798d98d47635" -dependencies = [ - "anyhow", - "base64 0.21.7", - "bincode", - "directories-next", - "log", - "rustix 0.38.30", - "serde", - "serde_derive", - "sha2", - "toml 0.5.11", - "windows-sys 0.52.0", - "zstd 0.11.2+zstd.1.5.2", -] - -[[package]] -name = "wasmtime-component-macro" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f19bcff82f81ba0273c0b68f3909977b0dd54489bc86c630d8aad43dca92f3f" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 2.0.48", - "wasmtime-component-util", - "wasmtime-wit-bindgen", - "wit-parser 0.13.1", -] - -[[package]] -name = "wasmtime-component-util" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8af072b7ad5ac5583e1f9e4737ebf88923de564fb5d4ace0ca9b4b720bdf95a1" - -[[package]] -name = "wasmtime-cranelift" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df08a8bd9a68732577bee05ac685e4c247238b5e79ad9c062e2dfb4d04dca132" -dependencies = [ - "anyhow", - "cfg-if 1.0.0", - "cranelift-codegen", - "cranelift-control", - "cranelift-entity", - "cranelift-frontend", - "cranelift-native", - "cranelift-wasm", - "gimli", - "log", - "object", - "target-lexicon", - "thiserror", - "wasmparser 0.118.2", - "wasmtime-cranelift-shared", - "wasmtime-environ", - "wasmtime-versioned-export-macros", -] - -[[package]] -name = "wasmtime-cranelift-shared" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "404201c9e669083f189f01337b3ed0aa0eb081157fb4e170bbfe193df9497771" -dependencies = [ - "anyhow", - "cranelift-codegen", - "cranelift-control", - "cranelift-native", - "gimli", - "object", - "target-lexicon", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-environ" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e696b4911c9a69c3c2892ec05eb41bb15436d1a46d8830a755c40f5df47546a" -dependencies = [ - "anyhow", - "cranelift-entity", - "gimli", - "indexmap 2.1.0", - "log", - "object", - "serde", - "serde_derive", - "target-lexicon", - "thiserror", - "wasm-encoder 0.38.1", - "wasmparser 0.118.2", - "wasmprinter", - "wasmtime-component-util", - "wasmtime-types", -] - -[[package]] -name = "wasmtime-fiber" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a39681c1f6f54d1bf7efe5dc829f8d7fc0e2ca12c346fd7a3efbf726e9681d2" -dependencies = [ - "anyhow", - "cc", - "cfg-if 1.0.0", - "rustix 0.38.30", - "wasmtime-asm-macros", - "wasmtime-versioned-export-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-jit" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c56519882d936c680bd191d58ac04cff071a470eca2dcc664adcd60f986a731" -dependencies = [ - "addr2line", - "anyhow", - "bincode", - "cfg-if 1.0.0", - "cpp_demangle", - "gimli", - "ittapi", - "log", - "object", - "rustc-demangle", - "rustix 0.38.30", - "serde", - "serde_derive", - "target-lexicon", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-jit-icache-coherence", - "wasmtime-runtime", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-jit-debug" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "babc65e64ab0dd4e1ce65624db64e24ed0fbdebb16148729173fa0da9f70e53c" -dependencies = [ - "object", - "once_cell", - "rustix 0.38.30", - "wasmtime-versioned-export-macros", -] - -[[package]] -name = "wasmtime-jit-icache-coherence" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7ec5b11c12d9acb09612e7ce04c4c8aea3e8dc79b2591ffdead986a5ce8ec49" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-runtime" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e1c31bbdf67cb86f149bcead5193749f23f77c93c5244ec9ac8d192f90966c" -dependencies = [ - "anyhow", - "cc", - "cfg-if 1.0.0", - "encoding_rs", - "indexmap 2.1.0", - "libc", - "log", - "mach", - "memfd", - "memoffset 0.9.0", - "paste", - "psm", - "rustix 0.38.30", - "sptr", - "wasm-encoder 0.38.1", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-fiber", - "wasmtime-jit-debug", - "wasmtime-versioned-export-macros", - "wasmtime-wmemcheck", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-types" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52e799cff634d30fd042db96b417d515e54f903b95f8c1e0ec60e8f604479485" -dependencies = [ - "cranelift-entity", - "serde", - "serde_derive", - "thiserror", - "wasmparser 0.118.2", -] - -[[package]] -name = "wasmtime-versioned-export-macros" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10fe166d4e4c95d5d80c5b47e1e12256af2099ac525ddb9a19b1aeb8896e5e1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "wasmtime-wasi" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "494f99111a165dcddc69aaa5fa23604f49dcfab479a869edd84581abd6ac569b" -dependencies = [ - "anyhow", - "async-trait", - "bitflags 2.4.1", - "bytes", - "cap-fs-ext", - "cap-net-ext", - "cap-rand", - "cap-std", - "cap-time-ext", - "fs-set-times", - "futures", - "io-extras", - "io-lifetimes 2.0.3", - "libc", - "log", - "once_cell", - "rustix 0.38.30", - "system-interface", - "thiserror", - "tokio", - "tracing", - "url", - "wasi-cap-std-sync", - "wasi-common", - "wasi-tokio", - "wasmtime", - "wiggle", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-wasi-http" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6ee5c9cd235c99afdb9acf8dac79ae0ea431e36cb1d9434d6940a7390bdce7" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "futures", - "http 1.0.0", - "http-body 1.0.0", - "http-body-util", - "hyper 1.1.0", - "rustls 0.21.10", - "tokio", - "tokio-rustls 0.24.1", - "tracing", - "wasmtime", - "wasmtime-wasi", - "webpki-roots 0.25.3", -] - -[[package]] -name = "wasmtime-winch" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f5d76d399cb4423e6f178bc154a0e1c314711e28dabaa6e757e56628a083ec" -dependencies = [ - "anyhow", - "cranelift-codegen", - "gimli", - "object", - "target-lexicon", - "wasmparser 0.118.2", - "wasmtime-cranelift-shared", - "wasmtime-environ", - "winch-codegen", -] - -[[package]] -name = "wasmtime-wit-bindgen" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb3bc92c031cf4961135bffe055a69c1bd67c253dca20631478189bb05ec27b" -dependencies = [ - "anyhow", - "heck 0.4.1", - "indexmap 2.1.0", - "wit-parser 0.13.1", -] - -[[package]] -name = "wasmtime-wmemcheck" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da08ab734954e16f57be38423b90c25a0b13420e51cbd0a2e37b86a468a988c" - -[[package]] -name = "wast" -version = "35.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" -dependencies = [ - "leb128", -] - -[[package]] -name = "wast" -version = "70.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ee4bc54bbe1c6924160b9f75e374a1d07532e7580eb632c0ee6cdd109bb217e" -dependencies = [ - "leb128", - "memchr", - "unicode-width", - "wasm-encoder 0.39.0", -] - -[[package]] -name = "wat" -version = "1.0.83" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f0dce8cdc288c717cf01e461a1e451a7b8445d53451123536ba576e423a101a" -dependencies = [ - "wast 70.0.0", -] - -[[package]] -name = "web-sys" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.7", - "untrusted 0.9.0", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - -[[package]] -name = "webpki-roots" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1778a42e8b3b90bff8d0f5032bf22250792889a5cdc752aa0020c84abe3aaf10" - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.30", -] - -[[package]] -name = "whoami" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50" -dependencies = [ - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wiggle" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5b200b5dd3d5d7cc4093166f4f916d2d2839296cf1b1757b9726635f6425c3" -dependencies = [ - "anyhow", - "async-trait", - "bitflags 2.4.1", - "thiserror", - "tracing", - "wasmtime", - "wiggle-macro", -] - -[[package]] -name = "wiggle-generate" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4dc34a2bc1091599de005e9b854cd1a9ea35b16ca51cac2797274c1a2666e06" -dependencies = [ - "anyhow", - "heck 0.4.1", - "proc-macro2", - "quote", - "shellexpand 2.1.2", - "syn 2.0.48", - "witx", -] - -[[package]] -name = "wiggle-macro" -version = "17.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ba3b37f402a7513b9ed7973a6e907074987b3afdcede98d3d79939b3e76f1b" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", - "wiggle-generate", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "winch-codegen" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d921185084e134e897e0e202e129a422306d0f1391954ecf4928d36defa897d" -dependencies = [ - "anyhow", - "cranelift-codegen", - "gimli", - "regalloc2", - "smallvec", - "target-lexicon", - "wasmparser 0.118.2", - "wasmtime-environ", -] - -[[package]] -name = "windows-core" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" -dependencies = [ - "windows-targets 0.52.0", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.0", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" - -[[package]] -name = "winnow" -version = "0.5.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if 1.0.0", - "windows-sys 0.48.0", -] - -[[package]] -name = "winx" -version = "0.36.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9643b83820c0cd246ecabe5fa454dd04ba4fa67996369466d0747472d337346" -dependencies = [ - "bitflags 2.4.1", - "windows-sys 0.52.0", -] - -[[package]] -name = "wit-component" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65672b7a81f9c7a4420af2ad8d0de608e27b520a6d4b68f29f5146e060a86ee4" -dependencies = [ - "anyhow", - "bitflags 2.4.1", - "indexmap 2.1.0", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder 0.36.2", - "wasm-metadata", - "wasmparser 0.116.1", - "wit-parser 0.12.2", -] - -[[package]] -name = "wit-parser" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43771ee863a16ec4ecf9da0fc65c3bbd4a1235c8e3da5f094b562894843dfa76" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.1.0", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", -] - -[[package]] -name = "wit-parser" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df4913a2219096373fd6512adead1fb77ecdaa59d7fc517972a7d30b12f625be" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.1.0", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", -] - -[[package]] -name = "witx" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" -dependencies = [ - "anyhow", - "log", - "thiserror", - "wast 35.0.2", -] - -[[package]] -name = "xattr" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d1526bbe5aaeb5eb06885f4d987bcdfa5e23187055de9b83fe00156a821fabc" -dependencies = [ - "libc", -] - -[[package]] -name = "xattr" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "914566e6413e7fa959cc394fb30e563ba80f3541fbd40816d4c05a0fc3f2a0f1" -dependencies = [ - "libc", - "linux-raw-sys 0.4.12", - "rustix 0.38.30", -] - -[[package]] -name = "xmlparser" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" - -[[package]] -name = "yansi" -version = "1.0.0-rc.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1367295b8f788d371ce2dbc842c7b709c73ee1364d30351dd300ec2203b12377" - -[[package]] -name = "zerocopy" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" -dependencies = [ - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.48", -] - -[[package]] -name = "zeroize" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" - -[[package]] -name = "zip" -version = "0.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" -dependencies = [ - "aes", - "byteorder", - "bzip2", - "constant_time_eq", - "crc32fast", - "crossbeam-utils", - "flate2", - "hmac", - "pbkdf2", - "sha1 0.10.6", - "time", - "zstd 0.11.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.11.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" -dependencies = [ - "zstd-safe 5.0.2+zstd.1.5.2", -] - -[[package]] -name = "zstd" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" -dependencies = [ - "zstd-safe 6.0.6", -] - -[[package]] -name = "zstd-safe" -version = "5.0.2+zstd.1.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-safe" -version = "6.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" -dependencies = [ - "libc", - "zstd-sys", -] - -[[package]] -name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" -dependencies = [ - "cc", - "pkg-config", -] diff --git a/containerd-shim-spin/Cargo.toml b/containerd-shim-spin/Cargo.toml deleted file mode 100644 index 69aabde0..00000000 --- a/containerd-shim-spin/Cargo.toml +++ /dev/null @@ -1,35 +0,0 @@ -[package] -name = "containerd-shim-spin-v2" -version = "0.11.1" -authors = ["DeisLabs Engineering Team"] -edition = "2021" -repository = 'https://github.com/deislabs/containerd-wasm-shims' -license = "Apache-2.0" -homepage = 'https://github.com/deislabs/containerd-wasm-shims' -description = """ -Containerd shim for running Spin workloads. -""" - -[dependencies] -containerd-shim-wasm = { git = "https://github.com/containerd/runwasi", rev = "c768e5b0919ca02903a301bf82a390489437dabe" } -log = "0.4" -spin-app = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-core = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-trigger = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-trigger-http = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-redis-engine = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -trigger-sqs = { git = "https://github.com/fermyon/spin-trigger-sqs", tag = "v0.6.0" } -spin-manifest = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-loader = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-oci = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -spin-common = { git = "https://github.com/fermyon/spin", tag = "v2.2.0" } -wasmtime = "17.0.0" -tokio = { version = "1", features = ["rt"] } -openssl = { version = "*", features = ["vendored"] } -serde = "1.0" -serde_json = "1.0" -url = "2.3" -anyhow = "1.0" -oci-spec = { version = "0.6.3" } - -[workspace] diff --git a/containerd-shim-spin/Cross.toml b/containerd-shim-spin/Cross.toml deleted file mode 100644 index 98bc95ce..00000000 --- a/containerd-shim-spin/Cross.toml +++ /dev/null @@ -1,8 +0,0 @@ -[build] -default-target = "x86_64-unknown-linux-musl" - -[target.x86_64-unknown-linux-musl] -dockerfile = "./cross/Dockerfile" - -[target.aarch64-unknown-linux-musl] -dockerfile = "./cross/Dockerfile" diff --git a/containerd-shim-spin/quickstart.md b/containerd-shim-spin/quickstart.md deleted file mode 100644 index fff306f9..00000000 --- a/containerd-shim-spin/quickstart.md +++ /dev/null @@ -1,274 +0,0 @@ -# Quickstart - -## Pre-requisites -Before you begin, you need to have the following installed: - -- [Docker](https://docs.docker.com/install/) version 4.13.1 (90346) or later with [containerd enabled](https://docs.docker.com/desktop/containerd/) -- [k3d](https://k3d.io/v5.4.6/#installation) -- [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl) -- [Spin v2.0+ and templates](https://developer.fermyon.com/spin/quickstart/) -- [Rust 1.71+](https://www.rust-lang.org/tools/install) - -## Start and configure a k3d cluster - -Start a k3d cluster with the wasm shims already installed: - -```bash -k3d cluster create wasm-cluster --image ghcr.io/deislabs/containerd-wasm-shims/examples/k3d:v0.11.1 -p "8081:80@loadbalancer" --agents 2 --registry-create mycluster-registry:12345 -``` - -Apply RuntimeClass for spin applications to use the spin wasm shim: - -```bash -kubectl apply -f https://raw.githubusercontent.com/deislabs/containerd-wasm-shims/main/deployments/workloads/runtime.yaml -``` - -## Deploy an existing sample spin application - -Deploy a pre-built sample spin application: - -```bash -kubectl apply -f https://raw.githubusercontent.com/deislabs/containerd-wasm-shims/main/deployments/workloads/workload.yaml -echo "waiting 5 seconds for workload to be ready" -sleep 5 -curl -v http://0.0.0.0:8081/spin/hello -``` - -Confirm you see a response from the sample application. For example: - -```output -$ curl -v http://0.0.0.0:8081/spin/hello -* Trying 0.0.0.0:8081... -* TCP_NODELAY set -* Connected to 0.0.0.0 (127.0.0.1) port 8081 (#0) -> GET /hello HTTP/1.1 -> Host: 0.0.0.0:8081 -> User-Agent: curl/7.68.0 -> Accept: */* -> -* Mark bundle as not supporting multiuse -< HTTP/1.1 200 OK -< Content-Length: 22 -< Date: Mon, 10 Oct 2022 20:39:43 GMT -< Content-Type: text/plain; charset=utf-8 -< -* Connection #0 to host 0.0.0.0 left intact -Hello world from Spin! -``` - -Delete the pre-built sample spin application: - -```bash -kubectl delete -f https://raw.githubusercontent.com/deislabs/containerd-wasm-shims/main/deployments/workloads/workload.yaml -``` - -## Create a new spin sample application - -Use `spin` to create a new sample application based on the `http-rust` template: - -```bash -spin new -t http-rust qs-wasm-spin -``` - -Add the details when prompted. For example: - -```bash -$ spin new -t http-rust qs-wasm-spin -Description: An example app for the quickstart -HTTP path: /hi -``` - -## Build the application - -Navigate to the directory where you created the application: - -```bash -cd qs-wasm-spin -``` - -Use `rustup` to install the `wasm32-wasi` target and `spin build` to build the application. For example: - -```bash -rustup target add wasm32-wasi -spin build -``` - -## Run the application - -Use `spin up` to run the application on your development computer. For example: - -```bash -spin up -``` - -The output shows the url for accessing the application. For example: - -```output -$ spin up -Serving http://127.0.0.1:3000 -Available Routes: - qs-wasm-spin: http://127.0.0.1:3000/hi -``` - -Access the `/hi` route. For example, use `curl` in a new terminal window: - -```bash -$ curl http://127.0.0.1:3000/hi -Hello, Fermyon -``` - -Return to the terminal window running `spin up` and stop the application. - -## Create a container image for the application - -You have two choices for publishing spin apps. The steps to deploy are the same afterwards. - -- [Container image](#creating-a-container-image) - use `docker build` to build a container image. This is a standard container image with the Spin application files in the root directory. -- [OCI WASM image](#creating-an-oci-wasm-image) - use `spin registry push` to [publish to OCI registry](https://developer.fermyon.com/spin/v2/distributing-apps#publishing-a-spin-application-to-a-registry). This is a WASM specific image format that contains custom layers for the spin files. Requires Spin 2.0+ and containerd 1.7.7+. - -### Creating a container image - -Create a `Dockerfile` at the root of the application directory with the following: - -```dockerfile -FROM --platform=${BUILDPLATFORM} rust:1.71 AS build -WORKDIR /opt/build -COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release - -FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/qs_wasm_spin.wasm . -COPY --from=build /opt/build/spin.toml . -``` - -Update `spin.toml` to change `source` to `qs_wasm_spin.wasm`: - -```toml -... -[component.qs-wasm-spin] -source = "qs_wasm_spin.wasm" -... -``` - -Use `docker` to build the container image and push it to the k3d registry: - -```bash -docker buildx build --platform=wasi/wasm -t localhost:12345/qs-wasm-spin . -docker push localhost:12345/qs-wasm-spin:latest -``` - -### Creating a OCI WASM Image - -It is possible to publish spin applications to [OCI registries](https://developer.fermyon.com/spin/v2/distributing-apps). - -``` -# must be spin 2.0 -spin registry push localhost:12345/spin-wasm-shim:latest-2.0 -``` - -## Deploy the application - -Create a `qs.yaml` file with the following: - -```yml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: wasm-spin -spec: - replicas: 3 - selector: - matchLabels: - app: wasm-spin - template: - metadata: - labels: - app: wasm-spin - spec: - runtimeClassName: wasmtime-spin - containers: - - name: testwasm - image: mycluster-registry:12345/qs-wasm-spin:latest - command: ["/"] ---- -apiVersion: v1 -kind: Service -metadata: - name: wasm-spin -spec: - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: wasm-spin ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: wasm-spin - annotations: - ingress.kubernetes.io/ssl-redirect: "false" -spec: - ingressClassName: traefik - rules: - - http: - paths: - - path: / - pathType: Prefix - backend: - service: - name: wasm-spin - port: - number: 80 -``` - -Deploy the application and confirm it is running: - -```bash -kubectl apply -f qs.yaml -echo "waiting 5 seconds for workload to be ready" -sleep 5 -curl -v http://0.0.0.0:8081/hi -``` - -Confirm you see a response from the sample application. For example: - -```output -$ curl -v http://0.0.0.0:8081/hi -* Trying 0.0.0.0:8081... -* TCP_NODELAY set -* Connected to 0.0.0.0 (127.0.0.1) port 8081 (#0) -> GET /hi HTTP/1.1 -> Host: 0.0.0.0:8081 -> User-Agent: curl/7.68.0 -> Accept: */* -> -* Mark bundle as not supporting multiuse -< HTTP/1.1 200 OK -< Content-Length: 14 -< Date: Tue, 11 Oct 2022 02:23:32 GMT -< Foo: bar -< Content-Type: text/plain; charset=utf-8 -< -* Connection #0 to host 0.0.0.0 left intact -Hello, Fermyon -``` - -## Clean up - -Remove the sample application: - -```bash -kubectl delete -f qs.yaml -``` - -Delete the cluster: - -```bash -k3d cluster delete wasm-cluster -``` - -## Next steps - -Try running Wasm applications on [Docker Desktop](https://docs.docker.com/desktop/wasm/) or on Kubernetes, such as [AKS](https://learn.microsoft.com/en-us/azure/aks/use-wasi-node-pools). \ No newline at end of file diff --git a/containerd-shim-spin/src/engine.rs b/containerd-shim-spin/src/engine.rs deleted file mode 100644 index 940e3224..00000000 --- a/containerd-shim-spin/src/engine.rs +++ /dev/null @@ -1,329 +0,0 @@ -use anyhow::{anyhow, ensure, Context, Result}; -use containerd_shim_wasm::container::{Engine, RuntimeContext, Stdio}; -use log::info; -use oci_spec::image::MediaType; -use spin_app::locked::LockedApp; -use spin_loader::cache::Cache; -use spin_loader::FilesMountStrategy; -use spin_manifest::schema::v2::AppManifest; -use spin_redis_engine::RedisTrigger; -use spin_trigger::TriggerHooks; -use spin_trigger::{loader, RuntimeConfig, TriggerExecutor, TriggerExecutorBuilder}; -use spin_trigger_http::HttpTrigger; -use std::collections::HashSet; -use std::env; -use std::fs::File; -use std::io::Write; -use std::net::SocketAddr; -use std::net::ToSocketAddrs; -use std::path::{Path, PathBuf}; -use tokio::runtime::Runtime; -use trigger_sqs::SqsTrigger; -use url::Url; - -const SPIN_ADDR: &str = "0.0.0.0:80"; -/// RUNTIME_CONFIG_PATH specifies the expected location and name of the runtime -/// config for a Spin application. The runtime config should be loaded into the -/// root `/` of the container. -const RUNTIME_CONFIG_PATH: &str = "/runtime-config.toml"; - -#[derive(Clone, Default)] -pub struct SpinEngine; - -struct StdioTriggerHook; -impl TriggerHooks for StdioTriggerHook { - fn app_loaded(&mut self, _app: &spin_app::App, _runtime_config: &RuntimeConfig) -> Result<()> { - Ok(()) - } - - fn component_store_builder( - &self, - _component: &spin_app::AppComponent, - builder: &mut spin_core::StoreBuilder, - ) -> Result<()> { - builder.inherit_stdout(); - builder.inherit_stderr(); - Ok(()) - } -} - -#[derive(Clone)] -enum AppSource { - File(PathBuf), - Oci, -} - -impl std::fmt::Debug for AppSource { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - AppSource::File(path) => write!(f, "File({})", path.display()), - AppSource::Oci => write!(f, "Oci"), - } - } -} - -impl SpinEngine { - async fn app_source(&self, ctx: &impl RuntimeContext, cache: &Cache) -> Result { - match ctx.wasm_layers() { - [] => Ok(AppSource::File( - spin_common::paths::resolve_manifest_file_path("/spin.toml")?, - )), - layers => { - info!( - " >>> configuring spin oci application {}", - ctx.wasm_layers().len() - ); - - for artifact in layers { - match artifact.config.media_type() { - MediaType::Other(name) - if name == spin_oci::client::SPIN_APPLICATION_MEDIA_TYPE => - { - let path = PathBuf::from("/spin.json"); - log::info!("writing spin oci config to {:?}", path); - File::create(&path) - .context("failed to create spin.json")? - .write_all(&artifact.layer) - .context("failed to write spin.json")?; - } - MediaType::Other(name) - if name == "application/vnd.wasm.content.layer.v1+wasm" => - { - log::info!( - "writing artifact config to cache, near {:?}", - cache.manifests_dir() - ); - cache - .write_wasm(&artifact.layer, &artifact.config.digest()) - .await?; - } - _ => {} - } - } - Ok(AppSource::Oci) - } - } - } - - async fn resolve_app_source( - &self, - app_source: AppSource, - cache: &Cache, - ) -> Result { - let resolve_app_source = match app_source { - AppSource::File(source) => ResolvedAppSource::File { - manifest_path: source.clone(), - manifest: spin_manifest::manifest_from_file(source.clone())?, - }, - AppSource::Oci => { - let working_dir = PathBuf::from("/"); - let loader = spin_oci::OciLoader::new(working_dir); - - // TODO: what is the best way to get this info? It isn't used only saved in the locked file - let reference = "docker.io/library/wasmtest_spin:latest"; - - let locked_app = loader - .load_from_cache(PathBuf::from("/spin.json"), reference, cache) - .await?; - ResolvedAppSource::OciRegistry { locked_app } - } - }; - Ok(resolve_app_source) - } - - async fn wasm_exec_async(&self, ctx: &impl RuntimeContext) -> Result<()> { - // create a cache directory at /.cache - // this is needed for the spin LocalLoader to work - // TODO: spin should provide a more flexible `loader::from_file` that - // does not assume the existence of a cache directory - let cache_dir = PathBuf::from("/.cache"); - let cache = Cache::new(Some(cache_dir.clone())) - .await - .context("failed to create cache")?; - env::set_var("XDG_CACHE_HOME", &cache_dir); - let app_source = self.app_source(ctx, &cache).await?; - let resolved_app_source = self.resolve_app_source(app_source.clone(), &cache).await?; - let trigger_cmd = trigger_command_for_resolved_app_source(&resolved_app_source) - .with_context(|| format!("Couldn't find trigger executor for {app_source:?}"))?; - let locked_app = self.load_resolved_app_source(resolved_app_source).await?; - self.run_trigger(&trigger_cmd, locked_app).await - } - - async fn run_trigger(&self, trigger_type: &str, app: LockedApp) -> Result<()> { - let working_dir = PathBuf::from("/"); - let f = match trigger_type { - HttpTrigger::TRIGGER_TYPE => { - let http_trigger: HttpTrigger = self - .build_spin_trigger(working_dir, app) - .await - .context("failed to build spin trigger")?; - info!(" >>> running spin trigger"); - http_trigger.run(spin_trigger_http::CliArgs { - address: parse_addr(SPIN_ADDR).unwrap(), - tls_cert: None, - tls_key: None, - }) - } - RedisTrigger::TRIGGER_TYPE => { - let redis_trigger: RedisTrigger = self - .build_spin_trigger(working_dir, app) - .await - .context("failed to build spin trigger")?; - - info!(" >>> running spin trigger"); - redis_trigger.run(spin_trigger::cli::NoArgs) - } - SqsTrigger::TRIGGER_TYPE => { - let sqs_trigger: SqsTrigger = self - .build_spin_trigger(working_dir, app) - .await - .context("failed to build spin trigger")?; - - info!(" >>> running spin trigger"); - sqs_trigger.run(spin_trigger::cli::NoArgs) - } - _ => { - todo!("Only Http, Redis and SQS triggers are currently supported.") - } - }; - info!(" >>> notifying main thread we are about to start"); - f.await - } - - async fn load_resolved_app_source( - &self, - resolved: ResolvedAppSource, - ) -> anyhow::Result { - match resolved { - ResolvedAppSource::File { manifest_path, .. } => { - // TODO: This should be configurable, see https://github.com/deislabs/containerd-wasm-shims/issues/166 - let files_mount_strategy = FilesMountStrategy::Direct; - spin_loader::from_file(&manifest_path, files_mount_strategy, None).await - } - ResolvedAppSource::OciRegistry { locked_app } => Ok(locked_app), - } - } - - async fn write_locked_app(&self, locked_app: &LockedApp, working_dir: &Path) -> Result { - let locked_path = working_dir.join("spin.lock"); - let locked_app_contents = - serde_json::to_vec_pretty(&locked_app).context("failed to serialize locked app")?; - tokio::fs::write(&locked_path, locked_app_contents) - .await - .with_context(|| format!("failed to write {:?}", locked_path))?; - let locked_url = Url::from_file_path(&locked_path) - .map_err(|_| anyhow!("cannot convert to file URL: {locked_path:?}"))? - .to_string(); - - Ok(locked_url) - } - - async fn build_spin_trigger( - &self, - working_dir: PathBuf, - app: LockedApp, - ) -> Result - where - for<'de> ::TriggerConfig: serde::de::Deserialize<'de>, - { - let locked_url = self.write_locked_app(&app, &working_dir).await?; - - // Build trigger config - let loader = loader::TriggerLoader::new(working_dir.clone(), true); - let mut runtime_config = RuntimeConfig::new(PathBuf::from("/").into()); - // Load in runtime config if one exists at expected location - if Path::new(RUNTIME_CONFIG_PATH).exists() { - runtime_config.merge_config_file(RUNTIME_CONFIG_PATH)?; - } - let mut builder = TriggerExecutorBuilder::new(loader); - builder - .hooks(StdioTriggerHook {}) - .config_mut() - .wasmtime_config() - .cranelift_opt_level(spin_core::wasmtime::OptLevel::Speed); - let init_data = Default::default(); - let executor = builder.build(locked_url, runtime_config, init_data).await?; - Ok(executor) - } -} - -impl Engine for SpinEngine { - fn name() -> &'static str { - "spin" - } - - fn run_wasi(&self, ctx: &impl RuntimeContext, stdio: Stdio) -> Result { - stdio.redirect()?; - info!("setting up wasi"); - let rt = Runtime::new().context("failed to create runtime")?; - rt.block_on(self.wasm_exec_async(ctx))?; - Ok(0) - } - - fn can_handle(&self, _ctx: &impl RuntimeContext) -> Result<()> { - Ok(()) - } -} - -fn parse_addr(addr: &str) -> Result { - let addrs: SocketAddr = addr - .to_socket_addrs()? - .next() - .ok_or_else(|| anyhow!("could not parse address: {}", addr))?; - Ok(addrs) -} - -// TODO: we should use spin's ResolvedAppSource -pub enum ResolvedAppSource { - File { - manifest_path: PathBuf, - manifest: AppManifest, - }, - OciRegistry { - locked_app: LockedApp, - }, -} - -impl ResolvedAppSource { - pub fn trigger_type(&self) -> anyhow::Result<&str> { - let types = match self { - ResolvedAppSource::File { manifest, .. } => { - manifest.triggers.keys().collect::>() - } - ResolvedAppSource::OciRegistry { locked_app } => locked_app - .triggers - .iter() - .map(|t| &t.trigger_type) - .collect::>(), - }; - - ensure!(!types.is_empty(), "no triggers in app"); - ensure!(types.len() == 1, "multiple trigger types not yet supported"); - Ok(types.into_iter().next().unwrap()) - } -} - -fn trigger_command_for_resolved_app_source(resolved: &ResolvedAppSource) -> Result { - let trigger_type = resolved.trigger_type()?; - - match trigger_type { - RedisTrigger::TRIGGER_TYPE | HttpTrigger::TRIGGER_TYPE | SqsTrigger::TRIGGER_TYPE => { - Ok(trigger_type.to_owned()) - } - _ => { - todo!("Only Http, Redis and SQS triggers are currently supported.") - } - } -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn can_parse_spin_address() { - let parsed = parse_addr(SPIN_ADDR).unwrap(); - assert_eq!(parsed.clone().port(), 80); - assert_eq!(parsed.ip().to_string(), "0.0.0.0"); - } -} diff --git a/containerd-shim-spin/src/main.rs b/containerd-shim-spin/src/main.rs deleted file mode 100644 index 6312c41f..00000000 --- a/containerd-shim-spin/src/main.rs +++ /dev/null @@ -1,8 +0,0 @@ -use containerd_shim_wasm::container::Instance; -use containerd_shim_wasm::sandbox::cli::{revision, shim_main, version}; - -mod engine; - -fn main() { - shim_main::>("spin", version!(), revision!(), "v2", None); -} diff --git a/cross/Dockerfile b/cross/Dockerfile index e4dcb9aa..f303f1db 100644 --- a/cross/Dockerfile +++ b/cross/Dockerfile @@ -14,8 +14,5 @@ ENV LIBSECCOMP_LIB_PATH="${CROSS_SYSROOT}/lib" # wws needs zlib (though libssh2-sys) RUN apk-${MARCH} add zlib-dev zlib-static -# See https://github.com/fermyon/spin/issues/1786 for the upstream issue requiring this polyfill. -RUN --mount=type=bind,from=jorgeprendes420/gcc_vld1q_s8_x4_polyfill,source=/polyfill.sh,target=/polyfill.sh /polyfill.sh - RUN apt-get -y update && \ apt-get install -y pkg-config protobuf-compiler diff --git a/deployments/k3d/Makefile b/deployments/k3d/Makefile index bc737a7e..c8b34f13 100644 --- a/deployments/k3d/Makefile +++ b/deployments/k3d/Makefile @@ -1,12 +1,10 @@ -SHIMS = spin slight wws lunatic -SPIN_VERSION = v2 +SHIMS = slight wws lunatic IMAGE_NAME ?= k3swithshims CLUSTER_NAME ?= k3s-default PLATFORM ?= linux/amd64 ARCH ?= x86_64 TARGET ?= $(ARCH)-unknown-linux-musl TEST_IMG_NAME_lunatic ?= wasmtest_lunatic:latest -TEST_IMG_NAME_spin ?= wasmtest_spin:latest TEST_IMG_NAME_slight ?= wasmtest_slight:latest TEST_IMG_NAME_wws ?= wasmtest_wws:latest @@ -15,7 +13,6 @@ compile-musl-%: move-musl-to-tmp: $(addprefix compile-musl-,$(SHIMS)) mkdir -p ./.tmp - cp ../../containerd-shim-spin/target/$(TARGET)/release/containerd-shim-spin-$(SPIN_VERSION) ./.tmp/ cp ../../containerd-shim-slight/target/$(TARGET)/release/containerd-shim-slight-v1 ./.tmp/ cp ../../containerd-shim-wws/target/$(TARGET)/release/containerd-shim-wws-v1 ./.tmp/ cp ../../containerd-shim-lunatic/target/$(TARGET)/release/containerd-shim-lunatic-v1 ./.tmp/ @@ -36,7 +33,7 @@ load-workload-images: build-workload-images $(foreach shim,$(SHIMS),k3d image load $(TEST_IMG_NAME_$(shim));) up: create-k3d load-workload-images - kubectl label nodes k3d-k3s-default-agent-0 spin-enabled=true slight-enabled=true wws-enabled=true lunatic-enabled=true + kubectl label nodes k3d-k3s-default-agent-0 slight-enabled=true wws-enabled=true lunatic-enabled=true kubectl apply -f ./workload test: diff --git a/deployments/k3d/config.toml.tmpl b/deployments/k3d/config.toml.tmpl index b8da1f8c..02472e7d 100644 --- a/deployments/k3d/config.toml.tmpl +++ b/deployments/k3d/config.toml.tmpl @@ -101,9 +101,6 @@ enable_keychain = true BinaryName = "{{$v.BinaryName}}" {{end}} -[plugins.cri.containerd.runtimes.spin] - runtime_type = "io.containerd.spin.v2" - [plugins.cri.containerd.runtimes.slight] runtime_type = "io.containerd.slight.v1" diff --git a/deployments/k3d/workload/runtime.yaml b/deployments/k3d/workload/runtime.yaml index 132ccab0..ec233893 100644 --- a/deployments/k3d/workload/runtime.yaml +++ b/deployments/k3d/workload/runtime.yaml @@ -9,15 +9,6 @@ scheduling: --- apiVersion: node.k8s.io/v1 kind: RuntimeClass -metadata: - name: wasmtime-spin -handler: spin -scheduling: - nodeSelector: - spin-enabled: "true" ---- -apiVersion: node.k8s.io/v1 -kind: RuntimeClass metadata: name: wasmtime-wws handler: wws diff --git a/deployments/k3d/workload/workload.yaml b/deployments/k3d/workload/workload.yaml index 1c891833..4e209ce8 100644 --- a/deployments/k3d/workload/workload.yaml +++ b/deployments/k3d/workload/workload.yaml @@ -40,39 +40,6 @@ spec: --- apiVersion: apps/v1 kind: Deployment -metadata: - name: wasm-spin -spec: - replicas: 1 - selector: - matchLabels: - app: wasm-spin - template: - metadata: - labels: - app: wasm-spin - spec: - runtimeClassName: wasmtime-spin - containers: - - name: spin-hello - command: ["/"] - imagePullPolicy: Never - image: wasmtest_spin:latest ---- -apiVersion: v1 -kind: Service -metadata: - name: wasm-spin -spec: - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: wasm-spin ---- -apiVersion: apps/v1 -kind: Deployment metadata: name: wasm-wws spec: @@ -136,7 +103,7 @@ spec: app: wasm-lunatic --- # Middleware -# Strip prefix /spin +# Strip prefix /slight apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: @@ -145,7 +112,6 @@ spec: stripPrefix: forceSlash: false prefixes: - - /spin - /slight - /wws - /lunatic @@ -162,13 +128,6 @@ spec: rules: - http: paths: - - path: /spin - pathType: Prefix - backend: - service: - name: wasm-spin - port: - number: 80 - path: /slight pathType: Prefix backend: diff --git a/deployments/k8s/all-in-one-demo.yaml b/deployments/k8s/all-in-one-demo.yaml index 4554bdf1..721105bc 100644 --- a/deployments/k8s/all-in-one-demo.yaml +++ b/deployments/k8s/all-in-one-demo.yaml @@ -9,15 +9,6 @@ scheduling: --- apiVersion: node.k8s.io/v1 kind: RuntimeClass -metadata: - name: "wasmtime-spin-v2" -handler: "spin" -scheduling: - nodeSelector: - "kubernetes.azure.com/wasmtime-spin-v2": "true" ---- -apiVersion: node.k8s.io/v1 -kind: RuntimeClass metadata: name: "wasmtime-wws-v1" handler: "wws" @@ -59,38 +50,6 @@ spec: --- apiVersion: apps/v1 kind: Deployment -metadata: - name: wasm-spin -spec: - replicas: 3 - selector: - matchLabels: - app: wasm-spin - template: - metadata: - labels: - app: wasm-spin - spec: - runtimeClassName: wasmtime-spin-v2 - containers: - - name: testwasm - image: ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:latest ---- -apiVersion: v1 -kind: Service -metadata: - name: wasm-spin -spec: - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: wasm-spin - type: LoadBalancer ---- -apiVersion: apps/v1 -kind: Deployment metadata: name: wasm-wws spec: diff --git a/deployments/workloads/runtime.yaml b/deployments/workloads/runtime.yaml index e43d35c6..e0de49b9 100644 --- a/deployments/workloads/runtime.yaml +++ b/deployments/workloads/runtime.yaml @@ -6,12 +6,6 @@ handler: slight --- apiVersion: node.k8s.io/v1 kind: RuntimeClass -metadata: - name: wasmtime-spin -handler: spin ---- -apiVersion: node.k8s.io/v1 -kind: RuntimeClass metadata: name: wasmtime-wws handler: wws diff --git a/deployments/workloads/workload.yaml b/deployments/workloads/workload.yaml index 1910f9db..75a4e431 100644 --- a/deployments/workloads/workload.yaml +++ b/deployments/workloads/workload.yaml @@ -39,45 +39,6 @@ spec: --- apiVersion: apps/v1 kind: Deployment -metadata: - name: wasm-spin -spec: - replicas: 1 - selector: - matchLabels: - app: wasm-spin - template: - metadata: - labels: - app: wasm-spin - spec: - runtimeClassName: wasmtime-spin - containers: - - name: spin-hello - image: ghcr.io/deislabs/containerd-wasm-shims/examples/spin-rust-hello:v0.11.1 - command: ["/"] - resources: # limit the resources to 128Mi of memory and 100m of CPU - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 100m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: wasm-spin -spec: - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: wasm-spin ---- -apiVersion: apps/v1 -kind: Deployment metadata: name: wasm-wws spec: @@ -154,7 +115,7 @@ spec: app: wasm-lunatic --- # Middleware -# Strip prefix /spin +# Strip prefix /slight apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: @@ -163,7 +124,6 @@ spec: stripPrefix: forceSlash: false prefixes: - - /spin - /slight - /wws - /lunatic @@ -180,13 +140,6 @@ spec: rules: - http: paths: - - path: /spin - pathType: Prefix - backend: - service: - name: wasm-spin - port: - number: 80 - path: /slight pathType: Prefix backend: diff --git a/images/spin-dapr/.dockerignore b/images/spin-dapr/.dockerignore deleted file mode 100644 index fc8a9b5f..00000000 --- a/images/spin-dapr/.dockerignore +++ /dev/null @@ -1,5 +0,0 @@ -target/debug -target/release -target/wasm32-wasi/build -target/wasm32-wasi/deps -.spin/ \ No newline at end of file diff --git a/images/spin-dapr/.gitignore b/images/spin-dapr/.gitignore deleted file mode 100644 index 386474fa..00000000 --- a/images/spin-dapr/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -target/ -.spin/ diff --git a/images/spin-dapr/Cargo.toml b/images/spin-dapr/Cargo.toml deleted file mode 100644 index 66794f01..00000000 --- a/images/spin-dapr/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "spin-dapr" -authors = ["Sven Pfennig "] -description = "Example application to use Dapr with Spin" -version = "0.1.0" -edition = "2021" - -[lib] -crate-type = [ "cdylib" ] - -[dependencies] -anyhow = "1" -# Crate to simplify working with bytes. -bytes = "1" -# General-purpose crate with common HTTP types. -http = "0.2" -# The Spin SDK. -spin-sdk = { git = "https://github.com/fermyon/spin", tag = "v1.4.1" } - -[workspace] diff --git a/images/spin-dapr/Dockerfile b/images/spin-dapr/Dockerfile deleted file mode 100644 index d8d08c8a..00000000 --- a/images/spin-dapr/Dockerfile +++ /dev/null @@ -1,4 +0,0 @@ -FROM scratch -COPY ./spin.toml . -COPY --chmod=0755 ./target/wasm32-wasi/release/spin_dapr.wasm /target/wasm32-wasi/release/spin_dapr.wasm -ENTRYPOINT ["/target/wasm32-wasi/release/spin_dapr.wasm"] \ No newline at end of file diff --git a/images/spin-dapr/README.md b/images/spin-dapr/README.md deleted file mode 100644 index 60a63729..00000000 --- a/images/spin-dapr/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# Spin Dapr Demo - -## Description -This demo application is a simple Spin app that is triggered by the daprs [kubernetes input binding](https://docs.dapr.io/reference/components-reference/supported-bindings/kubernetes-binding/) when it is called with the path `/kevents` it writes the body to a redis running at `redis://localhost:6379` to the key `lastEvent`. All other paths just return the value of the `lastEvent` key. - -### Prerequisites -Install dapr cli -```sh -curl -fsSL https://raw.githubusercontent.com/dapr/cli/master/install/install.sh | bash -``` - -Install spin cli: -```sh -curl -fsSL https://developer.fermyon.com/downloads/install.sh | bash -sudo mv ./spin /usr/local/bin/ -``` - -### Run example with K3d: -```sh -# start the K3d cluster -k3d cluster create wasm-cluster --image ghcr.io/deislabs/containerd-wasm-shims/examples/k3d:v0.11.1 -p "8081:80@loadbalancer" -# Install Dapr -dapr init -k --wait -# or via helm -# helm repo add dapr https://dapr.github.io/helm-charts/ -# helm repo update -# helm upgrade --install dapr dapr/dapr --namespace dapr-system --create-namespace --wait - -# build the application -cd images/spin-dapr -spin build -cd - -# create an image and load it into K3d -docker build images/spin-dapr -t spin-dapr:latest --load -mkdir -p test/out_spin-dapr/ -docker save spin-dapr:latest -o test/out_spin-dapr/img.tar -k3d image load -c wasm-cluster spin-dapr:latest test/out_spin-dapr/img.tar -# Apply the manifest -kubectl apply -f https://github.com/deislabs/containerd-wasm-shims/raw/main/deployments/workloads/runtime.yaml -kubectl apply -f images/spin-dapr/deploy.yaml - -# When everythin is up, forward the port and get the last kubernetes event -kubectl port-forward svc/spin-dapr 8080:80 & -curl localhost:8080 | jq -``` \ No newline at end of file diff --git a/images/spin-dapr/deploy.yaml b/images/spin-dapr/deploy.yaml deleted file mode 100644 index 0029fc2f..00000000 --- a/images/spin-dapr/deploy.yaml +++ /dev/null @@ -1,95 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: spin-dapr -spec: - replicas: 1 - selector: - matchLabels: - app: spin-dapr - template: - metadata: - labels: - app: spin-dapr - annotations: - dapr.io/enabled: "true" - dapr.io/app-id: "spin-dapr" - dapr.io/app-port: "80" - dapr.io/log-level: "debug" - spec: - runtimeClassName: wasmtime-spin - containers: - - image: redis - name: redis - - name: spin-dapr - image: spin-dapr:latest - imagePullPolicy: Never ---- -apiVersion: v1 -kind: Service -metadata: - name: spin-dapr -spec: - type: LoadBalancer - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: spin-dapr ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: spin-dapr - annotations: - ingress.kubernetes.io/ssl-redirect: "false" - kubernetes.io/ingress.class: traefik -spec: - rules: - - http: - paths: - - path: /spin-dapr - pathType: Prefix - backend: - service: - name: spin-dapr - port: - number: 80 ---- -apiVersion: dapr.io/v1alpha1 -kind: Component -metadata: - name: kevents - namespace: default -spec: - type: bindings.kubernetes - version: v1 - metadata: - - name: namespace - value: "default" - - name: resyncPeriodInSec - value: "1" - - name: direction - value: "input" ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: spin-dapr -rules: -- apiGroups: [""] - resources: ["events"] - verbs: ["get", "watch", "list"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: spin-dapr -subjects: -- kind: ServiceAccount - name: default # or as need be, can be changed -roleRef: - kind: Role - name: spin-dapr # same as the one above - apiGroup: "" \ No newline at end of file diff --git a/images/spin-dapr/spin.toml b/images/spin-dapr/spin.toml deleted file mode 100644 index eb004775..00000000 --- a/images/spin-dapr/spin.toml +++ /dev/null @@ -1,17 +0,0 @@ -spin_manifest_version = "1" -authors = ["Sven Pfennig "] -description = "Example application to use Dapr with Spin" -name = "spin-dapr" -trigger = { type = "http", base = "/" } -version = "0.1.0" - -[[component]] -id = "spin-dapr" -source = "target/wasm32-wasi/release/spin_dapr.wasm" -allowed_http_hosts = [] -[component.trigger] -route = "/..." - -[component.build] -command = "cargo build --target wasm32-wasi --release" -watch = ["src/**/*.rs", "Cargo.toml"] diff --git a/images/spin-dapr/src/lib.rs b/images/spin-dapr/src/lib.rs deleted file mode 100644 index e6b70410..00000000 --- a/images/spin-dapr/src/lib.rs +++ /dev/null @@ -1,30 +0,0 @@ -use anyhow::{anyhow, Result}; -use spin_sdk::{ - http::{Request, Response}, - http_component, redis, -}; - -// Expect redis running on localhost or in the same pod -const ADDRESS: &str = "redis://localhost:6379"; -const KEY: &str = "lastEvent"; - - -#[http_component] -fn handle_spin_dapr(req: Request) -> Result { - println!("{:?}\n", req); - - if req.uri().path().ends_with("kevents"){ - let value = req.body().clone().unwrap(); - println!("Set: {:?}", value); - redis::set(ADDRESS, KEY, &value) - .map_err(|_| anyhow!("Error executing Redis set command"))?; - } - - let value = redis::get(ADDRESS, KEY) - .map_err(|_| anyhow!("Error executing Redis get command"))?; - - Ok(http::Response::builder() - .status(200) - .header("foo", "bar") - .body(Some(value.into()))?) -} diff --git a/images/spin-inbound-redis/Cargo.lock b/images/spin-inbound-redis/Cargo.lock deleted file mode 100644 index e579ed49..00000000 --- a/images/spin-inbound-redis/Cargo.lock +++ /dev/null @@ -1,589 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "async-trait" -version = "0.1.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" - -[[package]] -name = "futures-executor" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "futures-sink" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" - -[[package]] -name = "futures-task" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" - -[[package]] -name = "futures-util" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "id-arena" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown", - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "routefinder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f8f99b10dedd317514253dda1fa7c14e344aac96e1f78149a64879ce282aca" -dependencies = [ - "smartcow", - "smartstring", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "serde" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" - -[[package]] -name = "smartcow" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656fcb1c1fca8c4655372134ce87d8afdf5ec5949ebabe8d314be0141d8b5da2" -dependencies = [ - "smartstring", -] - -[[package]] -name = "smartstring" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" -dependencies = [ - "autocfg", - "static_assertions", - "version_check", -] - -[[package]] -name = "spdx" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19b32ed6d899ab23174302ff105c1577e45a06b08d4fe0a9dd13ce804bbbf71" -dependencies = [ - "smallvec", -] - -[[package]] -name = "spin-inbound-redis" -version = "0.1.0" -dependencies = [ - "anyhow", - "bytes", - "http", - "spin-sdk", -] - -[[package]] -name = "spin-macro" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "bytes", - "http", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "spin-sdk" -version = "2.0.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "form_urlencoded", - "futures", - "http", - "once_cell", - "routefinder", - "serde", - "serde_json", - "spin-macro", - "thiserror", - "wit-bindgen", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasm-encoder" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-metadata" -version = "0.10.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2167ce53b2faa16a92c6cafd4942cff16c9a4fa0c5a5a0a41131ee4e49fc055f" -dependencies = [ - "anyhow", - "indexmap", - "serde", - "serde_derive", - "serde_json", - "spdx", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" -dependencies = [ - "indexmap", - "semver", -] - -[[package]] -name = "wit-bindgen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38726c54a5d7c03cac28a2a8de1006cfe40397ddf6def3f836189033a413bc08" -dependencies = [ - "bitflags", - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8bf1fddccaff31a1ad57432d8bfb7027a7e552969b6c68d6d8820dcf5c2371f" -dependencies = [ - "anyhow", - "wit-component", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7200e565124801e01b7b5ddafc559e1da1b2e1bed5364d669cd1d96fb88722" -dependencies = [ - "anyhow", - "heck", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae33920ad8119fe72cf59eb00f127c0b256a236b9de029a1a10397b1f38bdbd" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 2.0.39", - "wit-bindgen-core", - "wit-bindgen-rust", - "wit-component", -] - -[[package]] -name = "wit-component" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480cc1a078b305c1b8510f7c455c76cbd008ee49935f3a6c5fd5e937d8d95b1e" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43771ee863a16ec4ecf9da0fc65c3bbd4a1235c8e3da5f094b562894843dfa76" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", -] diff --git a/images/spin-inbound-redis/Cargo.toml b/images/spin-inbound-redis/Cargo.toml deleted file mode 100644 index 097feb08..00000000 --- a/images/spin-inbound-redis/Cargo.toml +++ /dev/null @@ -1,20 +0,0 @@ -[package] -name = "spin-inbound-redis" -version = "0.11.1" -authors = ["Suneet Nangia "] -edition = "2021" - -[lib] -crate-type = ["cdylib"] - -[dependencies] -anyhow = "1" -bytes = "1" -http = "0.2" -# Do not change spin sdk version without testing the e2e. -spin-sdk = { git = "https://github.com/fermyon/spin", tag = "v2.0.1" } - -[workspace] - -[profile.release] -strip = true \ No newline at end of file diff --git a/images/spin-inbound-redis/Dockerfile b/images/spin-inbound-redis/Dockerfile deleted file mode 100644 index 71470aaf..00000000 --- a/images/spin-inbound-redis/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM --platform=${BUILDPLATFORM} rust:1.72 AS build -WORKDIR /opt/build -COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release - -FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_inbound_redis.wasm . -COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin-inbound-redis/spin.toml b/images/spin-inbound-redis/spin.toml deleted file mode 100644 index 63af0242..00000000 --- a/images/spin-inbound-redis/spin.toml +++ /dev/null @@ -1,23 +0,0 @@ -spin_manifest_version = 2 - -[application] -authors = ["Suneet Nangia "] -name = "spin-inbound-redis" -version = "1.0.0" - -[variables] -redis_address = { required = true } -redis_channel = { required = true } - -[[trigger.redis]] -address = "redis://redis-service.default.svc.cluster.local:6379" -component = "hello" - -[component.hello] -source = "spin_inbound_redis.wasm" -allowed_outbound_hosts = ["redis://*:*"] - -[component.hello.variables] -redis_address = "{{ redis_address }}" -redis_channel = "{{ redis_channel }}" - diff --git a/images/spin-inbound-redis/src/lib.rs b/images/spin-inbound-redis/src/lib.rs deleted file mode 100644 index bf488d85..00000000 --- a/images/spin-inbound-redis/src/lib.rs +++ /dev/null @@ -1,21 +0,0 @@ -use anyhow::Result; -use bytes::Bytes; -use spin_sdk::redis_component; -use std::str::from_utf8; -use spin_sdk::{redis, variables}; - -/// A simple Spin Redis component. -#[redis_component] -fn on_message(message: Bytes) -> Result<()> { - - let address = variables::get("redis_address").expect("could not get variable"); - let channel = variables::get("redis_channel").expect("could not get variable"); - let conn = redis::Connection::open(&address)?; - - println!("{}", from_utf8(&message)?); - - // Publish to Redis - conn.publish(&channel, &message.to_vec())?; - - Ok(()) -} diff --git a/images/spin-keyvalue/Cargo.lock b/images/spin-keyvalue/Cargo.lock deleted file mode 100644 index 31d137c3..00000000 --- a/images/spin-keyvalue/Cargo.lock +++ /dev/null @@ -1,589 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "async-trait" -version = "0.1.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" - -[[package]] -name = "futures-executor" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "futures-sink" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" - -[[package]] -name = "futures-task" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" - -[[package]] -name = "futures-util" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "http" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f95b9abcae896730d42b78e09c155ed4ddf82c07b4de772c64aee5b2d8b7c150" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "id-arena" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown", - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "routefinder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f8f99b10dedd317514253dda1fa7c14e344aac96e1f78149a64879ce282aca" -dependencies = [ - "smartcow", - "smartstring", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "serde" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" - -[[package]] -name = "smartcow" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656fcb1c1fca8c4655372134ce87d8afdf5ec5949ebabe8d314be0141d8b5da2" -dependencies = [ - "smartstring", -] - -[[package]] -name = "smartstring" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" -dependencies = [ - "autocfg", - "static_assertions", - "version_check", -] - -[[package]] -name = "spdx" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19b32ed6d899ab23174302ff105c1577e45a06b08d4fe0a9dd13ce804bbbf71" -dependencies = [ - "smallvec", -] - -[[package]] -name = "spin-keyvalue" -version = "0.9.3" -dependencies = [ - "anyhow", - "http", - "serde", - "spin-sdk", -] - -[[package]] -name = "spin-macro" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "bytes", - "http", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "spin-sdk" -version = "2.0.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "form_urlencoded", - "futures", - "http", - "once_cell", - "routefinder", - "serde", - "serde_json", - "spin-macro", - "thiserror", - "wit-bindgen", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasm-encoder" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-metadata" -version = "0.10.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2167ce53b2faa16a92c6cafd4942cff16c9a4fa0c5a5a0a41131ee4e49fc055f" -dependencies = [ - "anyhow", - "indexmap", - "serde", - "serde_derive", - "serde_json", - "spdx", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" -dependencies = [ - "indexmap", - "semver", -] - -[[package]] -name = "wit-bindgen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38726c54a5d7c03cac28a2a8de1006cfe40397ddf6def3f836189033a413bc08" -dependencies = [ - "bitflags", - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8bf1fddccaff31a1ad57432d8bfb7027a7e552969b6c68d6d8820dcf5c2371f" -dependencies = [ - "anyhow", - "wit-component", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7200e565124801e01b7b5ddafc559e1da1b2e1bed5364d669cd1d96fb88722" -dependencies = [ - "anyhow", - "heck", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae33920ad8119fe72cf59eb00f127c0b256a236b9de029a1a10397b1f38bdbd" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 2.0.39", - "wit-bindgen-core", - "wit-bindgen-rust", - "wit-component", -] - -[[package]] -name = "wit-component" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480cc1a078b305c1b8510f7c455c76cbd008ee49935f3a6c5fd5e937d8d95b1e" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43771ee863a16ec4ecf9da0fc65c3bbd4a1235c8e3da5f094b562894843dfa76" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", -] diff --git a/images/spin-keyvalue/Cargo.toml b/images/spin-keyvalue/Cargo.toml deleted file mode 100644 index c20414fc..00000000 --- a/images/spin-keyvalue/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "spin-keyvalue" -version = "0.9.3" -authors = ["DeisLabs Engineering Team"] -edition = "2021" - -[lib] -crate-type = ["cdylib"] - -[dependencies] -anyhow = "1" -http = "0.2.9" -serde = { version = "1.0", features = ["derive"] } -spin-sdk = { git = "https://github.com/fermyon/spin", tag = "v2.0.0" } - -[workspace] - -[profile.release] -strip = true \ No newline at end of file diff --git a/images/spin-keyvalue/Dockerfile b/images/spin-keyvalue/Dockerfile deleted file mode 100644 index cf4724be..00000000 --- a/images/spin-keyvalue/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM --platform=${BUILDPLATFORM} rust:1.71 AS build -WORKDIR /opt/build -COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release - -FROM scratch -COPY --from=build /opt/build/spin.toml ./spin.toml -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_keyvalue.wasm ./target/wasm32-wasi/release/spin_keyvalue.wasm diff --git a/images/spin-keyvalue/runtime-config.toml b/images/spin-keyvalue/runtime-config.toml deleted file mode 100644 index 795dbbf5..00000000 --- a/images/spin-keyvalue/runtime-config.toml +++ /dev/null @@ -1,4 +0,0 @@ -# This defines a new store named user_data -[key_value_store.foo] -type = "spin" -path = "user_data.db" \ No newline at end of file diff --git a/images/spin-keyvalue/spin.toml b/images/spin-keyvalue/spin.toml deleted file mode 100644 index 5be42dee..00000000 --- a/images/spin-keyvalue/spin.toml +++ /dev/null @@ -1,20 +0,0 @@ -spin_manifest_version = 2 - -[application] -name = "spin-hello" -authors = ["Kate Goldenring ", "DeisLabs Engineering Team"] -description = "hello" -version = "0.1.0" - -[[trigger.http]] -route = "/keyvalue" -component = "keyvalue" - -[component.keyvalue] -source = "target/wasm32-wasi/release/spin_keyvalue.wasm" -allowed_http_hosts = [] -key_value_stores = ["foo"] - -[component.keyvalue.build] -command = "cargo build --target wasm32-wasi --release" -watch = ["src/**/*.rs", "Cargo.toml"] \ No newline at end of file diff --git a/images/spin-keyvalue/src/lib.rs b/images/spin-keyvalue/src/lib.rs deleted file mode 100644 index 344ab14f..00000000 --- a/images/spin-keyvalue/src/lib.rs +++ /dev/null @@ -1,18 +0,0 @@ -use anyhow::Result; -use spin_sdk::{ - http::{Request, Response}, - http_component, - key_value::Store, -}; - -/// A simple Spin HTTP component. -#[http_component] -fn handle_kv(_req: Request) -> Result { - let store = Store::open("foo")?; - store.set("mykey", "wow".as_bytes())?; - let value = store.get("mykey")?; - Ok(Response::builder() - .status(200) - .body(value) - .build()) -} \ No newline at end of file diff --git a/images/spin-outbound-redis/Cargo.lock b/images/spin-outbound-redis/Cargo.lock deleted file mode 100644 index f5b663bb..00000000 --- a/images/spin-outbound-redis/Cargo.lock +++ /dev/null @@ -1,589 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "async-trait" -version = "0.1.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" - -[[package]] -name = "futures-executor" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "futures-sink" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" - -[[package]] -name = "futures-task" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" - -[[package]] -name = "futures-util" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "id-arena" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown", - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "routefinder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f8f99b10dedd317514253dda1fa7c14e344aac96e1f78149a64879ce282aca" -dependencies = [ - "smartcow", - "smartstring", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "serde" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.192" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" - -[[package]] -name = "smartcow" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656fcb1c1fca8c4655372134ce87d8afdf5ec5949ebabe8d314be0141d8b5da2" -dependencies = [ - "smartstring", -] - -[[package]] -name = "smartstring" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" -dependencies = [ - "autocfg", - "static_assertions", - "version_check", -] - -[[package]] -name = "spdx" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19b32ed6d899ab23174302ff105c1577e45a06b08d4fe0a9dd13ce804bbbf71" -dependencies = [ - "smallvec", -] - -[[package]] -name = "spin-macro" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "bytes", - "http", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "spin-outbound-redis" -version = "0.9.3" -dependencies = [ - "anyhow", - "bytes", - "http", - "spin-sdk", -] - -[[package]] -name = "spin-sdk" -version = "2.0.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "form_urlencoded", - "futures", - "http", - "once_cell", - "routefinder", - "serde", - "serde_json", - "spin-macro", - "thiserror", - "wit-bindgen", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasm-encoder" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-metadata" -version = "0.10.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2167ce53b2faa16a92c6cafd4942cff16c9a4fa0c5a5a0a41131ee4e49fc055f" -dependencies = [ - "anyhow", - "indexmap", - "serde", - "serde_derive", - "serde_json", - "spdx", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" -dependencies = [ - "indexmap", - "semver", -] - -[[package]] -name = "wit-bindgen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38726c54a5d7c03cac28a2a8de1006cfe40397ddf6def3f836189033a413bc08" -dependencies = [ - "bitflags", - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8bf1fddccaff31a1ad57432d8bfb7027a7e552969b6c68d6d8820dcf5c2371f" -dependencies = [ - "anyhow", - "wit-component", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7200e565124801e01b7b5ddafc559e1da1b2e1bed5364d669cd1d96fb88722" -dependencies = [ - "anyhow", - "heck", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae33920ad8119fe72cf59eb00f127c0b256a236b9de029a1a10397b1f38bdbd" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 2.0.39", - "wit-bindgen-core", - "wit-bindgen-rust", - "wit-component", -] - -[[package]] -name = "wit-component" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480cc1a078b305c1b8510f7c455c76cbd008ee49935f3a6c5fd5e937d8d95b1e" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43771ee863a16ec4ecf9da0fc65c3bbd4a1235c8e3da5f094b562894843dfa76" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", -] diff --git a/images/spin-outbound-redis/Cargo.toml b/images/spin-outbound-redis/Cargo.toml deleted file mode 100644 index 465bc1ef..00000000 --- a/images/spin-outbound-redis/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "spin-outbound-redis" -version = "0.11.1" -authors = ["DeisLabs Engineering Team"] -edition = "2021" - -[lib] -crate-type = ["cdylib"] - -[dependencies] -anyhow = "1" -bytes = "1" -http = "0.2" -spin-sdk = { git = "https://github.com/fermyon/spin", tag = "v2.0.1" } - -[workspace] - -[profile.release] -strip = true \ No newline at end of file diff --git a/images/spin-outbound-redis/Dockerfile b/images/spin-outbound-redis/Dockerfile deleted file mode 100644 index 664de2a0..00000000 --- a/images/spin-outbound-redis/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM --platform=${BUILDPLATFORM} rust:1.72 AS build -WORKDIR /opt/build -COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release - -FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_outbound_redis.wasm . -COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin-outbound-redis/spin.toml b/images/spin-outbound-redis/spin.toml deleted file mode 100644 index 32277ef8..00000000 --- a/images/spin-outbound-redis/spin.toml +++ /dev/null @@ -1,25 +0,0 @@ -spin_manifest_version = 2 - -[application] -authors = ["DeisLabs Engineering Team"] -name = "spin-outbound-redis" -version = "1.0.0" - -[variables] -redis_address = { required = true } -redis_channel = { required = true } - -[[trigger.http]] -route = "hello" -component = "hello" - -[component.hello] -source = "spin_outbound_redis.wasm" -allowed_outbound_hosts = ["redis://*:*"] - -[component.hello.variables] -redis_address = "{{ redis_address }}" -redis_channel = "{{ redis_channel }}" - -[component.hello.build] -command = "cargo build --target wasm32-wasi --release" \ No newline at end of file diff --git a/images/spin-outbound-redis/spin_outbound_redis.wasm b/images/spin-outbound-redis/spin_outbound_redis.wasm deleted file mode 100755 index 42daa0ba8212d6e4be97a2edeb04c76f6879ff09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 137573 zcmeFa37lnBc`v%x-e;<_PgU*ev3daZIW$_Wv|vQK119#WFbc-u^744^daoEmA_Y;q zA;fzhmoA{2G>Fm)YAYzMq7Vgx;(*3ztH_{;o#2254Jt9Hm~<2s6y^T^|8MQ#R97>^ z;g^@2M(ccg?KOPso7T6!HSFj`r~j#oqR73=Ej=mOv}sdxQXKxcO(!`#Hjs!Px5=HY z3`lM>3IC##n&DTO@Ft2*>MBWpR0ICRo6fes(Mb{0_|&p&6;xD)l(ed16CR7^048T| zLP~r|JTmsOKRe?OU-oA&{i8J-PyVA*PH(^b&;IbVQ%-+L)SmMq`ID2+h&popLxp3fBw|YAOFz{|9s;qXPg|3 z>?KEc4FL~0FUwY;#8(;R)N6a))WIFwn|9SH1kC=7j}IbB!eKjc4O=FL7}+;*usxurXlZ+(c)hBiJQwl!Z_uUPM3= z|JWd~bA+RWFMCO^!UGw4mcJ;66v%EIxke*uEZ`sg&m~a@P`5$BW@WMZ)j~(~)IulO zVlr;sK~u5iYvEtgh`UjDTs1ooqtWO!*g!AApVoM{f!ZAVW+d#m7&%SQ z3cFpRoZzS1?X~b?8VWwjRnIm{&?fbCr9sTjQk8uc$Z!i?|Z=htDdm( zY12MC;>P5SjpL6!?pgaBb7kY`E8^!r^LN%gQWbJSNg*(sv-+%ZA z|Mi3|?p$}`e}CS8JI9^x{+}0Yc3a*5`=S?~^wJlf{^w`^=_woj$NxI@B`<%)X@9)& z|C@DxbjF!~@@M~Z=H!>1wdpPHD)&zJKKEXCy?ej=fZO3NbJw^l-CNz;+}quU+y~uz z+;#3+_gC%)cayu(eahY8cDrx7d)(db8}3`~uif9c54(@JkGjvhzje2|&$^r4E$%b! zcDKvj=6>RS?0)Ee(#GE=uWa0u{9W?hNQhli1J1r=PuiR&g^W2EOCn5k#akLd7Qo8-lS+QL326k zKQwNrqTHb(K&)>Zb@MsAiP;2dsHG_zF<`0mN6s}i?LUiukw_lgglvBu-o}2V5h{M|XjP)=5;a-4uV+Re}F$I|HzGIiAHO{e?)&g?hH|DvmqC9s7e zxz~P@e7~7~{;HTeY0Ul7yT16OM_}&czYpf#ivhRB+@w-u2yQ$xfO1lY3zdeHQ>H0? zF_;R8qErd0vsZcmwIzFD1;}0qStZ6v5MvlN)Ra_WOrzI#6p%uUX>Lr6Wt1Ss$zH@5 z(!7TlCzbAwM$_MW%_SfB@txPd?fxiT#7d{k;B7qz27p#=go$$?B%|a{-uf@sUwql- zJKnTusN{8zUh=#xSKj{4ySH9`dz5Z%HWEx9+@|K)Ia->E*MY)^#_P-?N-vQ3j6pIA zEc$S!V6~~yAaZi5QT^BzgQic814dE5g-mT41^4ubPmO+?X1?v+#=Q9)TGzZi^Ry^J zN^-`v=jW}>{TASOW5`!!dg^c{+WlyCa&X=Pt&=nSx((N!zj@GFixje*W&>m$wDB`J zGe}k^qUFq>NvO4D&^c=`lDF|N=uVGbkat;GcGjS~WssgV=;i73#06W{B5RWOrt=F3 zHS>|YGo4+4veSz%$UAu#FU}ftlr6$@3s5Grhr!0TH}u=+DGkFbHVk6+m8hV_en+?w zY5|&3+K3S7ca!xXNn>Vp6b;gRWDAf4rf4f~0lB;dT(=AW_5cDyR4@XR^3EKjx?B1q zLL6;%^K?tUn>Qel02u`?z+E$dJ|afP;^hTb!0q-^*7LDqub*A6Rr=E}d4lDzmK)epz8~ikmrtsxS_9_j- ze9=!pZcsN*(AmQxzGgD~gG1wvmFG00LAzRSZM!CJ~M zs9{|eyIWc2);j8wJ}rx|7iNRx)Z9slXsok~=j}=Cd+1K^%Gl#v{h?Qp&8#vxh|)9m zCKR&$zb3hOt{iI7d_b0zoifWn1=~xf!0vjFsD~XNQPAq+!*0qY$A=@U-qqwPhCqWd zU!sRf_p8@;pbvnKhAwlfD=O`6ltKM4>)(3I*KYjogZF&>VLe^*^KV}8<9FP>TT`xT-V9pD0X1lyl7Jrv%_1pJg4V(C`t9eUbNGe+6(F)VvTsuZ zqjX)>EV}GMv(#ajSGkkyBsv@_ciDR>K2dtu`~^csd4)6nYBuf*{m6cHu8KZwsAzCW z$VG66a>pJ+`PguhU1!bBVcADnFKT8GERYCGCkD057w#pqr5_N*u)@eb8fD)zYM{b< ztTzyB@j3lt*f-_s(|)j@v}u}8G8q#A-|>wwrGhW!a%a;%$UCXFM~&lY(V7Z|S=40> z*ThT}*;i`bV6&Sk_;e1F79ZQBOr``QEszfLpQ$((VwmN?(d#!7A&21$bD*B`VVZ}o zP>9%9K$G(T~Xl?=}!ij_rAaIN(o%e|ojn8-CRc#@}2W;*@UH zX)~xN_6N`OUBX&UWG9{*kUt^(zJR~AYMeid+0F>BUtzy<^GwcY)_6;Vy5amZt1chR z0wwhi6dpreo{HDoYnNRlJB8NQ`)nwW|3Xx&#_x)t;#2W4VE=7;L0*;YN%x16N;Yh+ zU&scT8D{Hg`mKpZTMn-~dw;RjZ*!*(x@JTuvh)9!H;nLK#0=`VQA7j$yL5}O!HodcZ{a_D5RbVMMR)WJ<0O!bYpGOVeTR!$9%g7Pi~afrO_YD zll~|;H)^8V$14wt=cAT5Q-Ur&>AY$7GT)qcLAMoy2|e!K zFC;%7k&aN8nTWvx;8&|=;r!JsoLdd2`Dh`77mJ@BJ&-P?G|gU3-O;;#s+XNS1@UH( za{+sq<{5jbp9X%$X$?}pXeRF&1eZ-vSCz^-FOrH?B>VTth2;z4fx;cn~OKS4$G>ofsf zNKzisUtkh2g{UradQ^T9v-P?_d3AhXe*y%J@dA?uy+HPf>3r)|1M+P!N>;%9gkc@Q z<2Iw9RI{1>cs_AeA43!v0yS)-K{4V!vQaruos3vd^Ft|0Krx=5@z8TB6L;2DSI|0L#8pyURl_kV`wj@;^+1;S%>vCqk<45 z%udJ+r1CM^(!$QHMl)*@){TP4=e?@lURCdN`#n_1vJ^_I7W0wN0L&9Q!eGQ`J`Tk~ zziI-BwkeSKVLxE<9+N=k3ytGwf~E1p(y*eBp>!EVEtTRoj{|t~Z&xXbSut>8%sbUj zz7!M&bQGA*5v8A+JcZG)C)os7^IkdnQ{2pZ8`x_bP-{8FGDvLdUxE>;@ZVS!JY6(W z4lqzFSe0#57J#t)mlA|8hc*@zy0l%oM5{yv(o3caS@xk2wqG0lTCfiqJO-^Qt&K zmpjlkxK$R+Q-@se!xRLRr{bt(AZ~voWH5hh&_x#456;Y{XAROLM;qvC8Y~1>k+4eC zL1?X8E~aR8gVbG#DdFLcQvnP?T`E*WHy}W818nljNk8b#x6nO!N?}rc`&Ca)@q1T5T`Dx%64#O!%5a-aUy>Z&lk-p>G+>voO;CLR}{uME;#q~ zs{gIQls)IgHr2(-L%D=_a1~mh7*f^|NaPQEUHgxZSPvbGv6TTqr%~tMzXeW#kFr-` z^pE|NH`@%)>j)UZ13Qp26>deVM&}~8nizY1PJdyEI&3C!94L!xIG86 zAx+_km!(ZH4dLq|cFKG?)AHdo&5;rMuIEEPhvKd*8!#{Og~02HXl=Kfu{N{U5&MGP zu$J-aWVf46o<|!+L@l%5UPb{`*k64y`7oM&ky_1SQ}J%CLi>lXBuaK*+8X-@@PG+E z1M|pnzw3kKY}|ifxO|0xL1lfasm&k(#3Ize$nmxW{l$#rld7kg{Uy7>_uG=e2!kI0 zwsAq-bpt-MFGXX2eFHst96q0Tj+HeW)sT@i}rNlc_l)c+JxhC3{ z!04md)yei`FuE4o6!Ot&_k1|^$PVk@mi@oF-aRmYgwMWK)bXGrht@<7z@i)12czUW zsS9B;HX)?wqO}+@*qHmNTkAkkPO48}%0cdf@!{?$q}<{TcSkU33fnCXWv5u>)$!T{ z%UuL_06f^h?Et3?+y*c=a4SGA3pWmnM)1=tFYXSXsBen==Yck_^p9ksyroQf`EN6d3>L3;nXKy04 zQ!rZI%m`x1MF0qC+H``bZJEaTNei;sDpGoAu8n~6YgrBDP&@-qVV*mWr&daQRV!Sd zN>XB)qQ@#N*k>c@eE`aSqCfxD=&e5heWw|{Mo+i!Z#j3}qucX$nj=n$9?1oT+wOc< z%RqjI@Us|Q>@U|7tay!*$bJptu9p3}kX?2i9aGqsf9khH*VctifxuLy(yE8Vq`@ zL1HWls#`^nm}~35fgo|K2ogh&Yh6OGH#?xes+wf6+f(tKZa7Y?q?#OwIQP|S^7m3$ zrsBI{hy6WzGZZO~*H{11{6~dH0b7C+cSgkuT+PSGZlZNzttWEt7&Z9?Ya!*DtrQZ+ z5t;rRD!DI`2c!geI>4hyu*FeSg!#-?cn!2`C&9)b~ohkZr{ zf#FGk^4JqMfZ2qgV0laX_XaTZuxAMNV4kIYaj=t`ufaqGA{b=B?1;T&`u&*WO64xoF&O4*hEe66-b}xqm(jlVw0A)=J2HLPzEF(E|kXh?n@ycCt#<25L{itEJCQkB5^3h)oNBN(Z?mh&r;q$$rW-JR){TZ;HZ%834PQz0!KeVI}i1 z+s8T-yN^F;YG`P{hzndX>dHE>KWt-XRLoi2cyvPPoy6W7WP- zR1j2)&Jq?_NDf;OY#fOlWAwRUg@Fv5f9DSr)CQCb!YFV5CE>SthAW|tU~u5p47w4A zfZf<3>fO=U6+4o*o&z$%#f2dobP+@X8Anm5-=tTOfF+2wW1|HenLb7(Btwn3dU4x! zbS}HaI)#eUP;rXQ8y-1}wgz1=YX$J{!q6ZD#(*!oF~ZpL((0fx^knCw##jMjD#>n>##p;_PRBX~=L(#Hg#KU&b@-`{WUAnRk#dCu=+MxHd9 zt#)UmoAyS>#}IZKiGfO0Z(}1)aoZa`M@<#Iq2Z0{?^kD zdHSJi*ZuZkhd<+Ye)pN{{q*l0apX})A9L)pjywK2sUHUgzV#|mp!fUs_=WKJ?9`9q z?akrw_|)fkyed2%m->}>d}VlimOcKKEd1M|k|5)Mt3y79O8rkF(+N@YIjt?GG+AtPZoc-wcnxZ4G@fJg!Uq zQe^&EcwC$M{qcBNcsw-qJv?3<9-p523j%nE_4WMl__P!o4ZHr_@c3Ky_=^h+g{P+e zfdC$CRQT8Mcu?v`Q10IF_!KL5Pk3Bok9UX10}<*+<~zgVlT$x|$D70BldNMO36HBS z^ZUZ%lu_`C@c2Z_{MzvN1Z(Kk;qd?~dwzIaWmNd-R_o3Fuz~@^`tv^ru%G$`z~-*- z2-`u9-5MVEGlBg`c-+^7?uziZk4eg#!sAM#(Iw$=g_YeL9+%tOpZ|qnvn=%~8u~$a zoW!~<9={$Qmm(~W$D6|A5+m6M!sB9-?kmFMqSP-&<_p8)!qjgL-~toJpPp}RPNaSr zGJYdGW+{wl*Z)I!#3(^QzcW0J1vZ681kowke-j>imidF>F}0fC93H#Imp6vT5fi%C zhsTbUy*NC!P0$~vf6>QjBJ13D!ei4O?+A|#BkGOe5%!%Lr4Rth!i>{L=wmYh#v@zX zx48Nk#*8j3Fb-eQ?!zg=mI4GIOy$hPa0zq_A@|YXr(qWaGP@j$V8KsAoPsVY1|}?= zFeqv3{TPlXF^=J9QJ;eZfUNLz6xHw1amB>rcutn#u9+W*g%k{6T*oi`z%eV_8Q@$4 zs>gT^x1bj`0wATsg){teWyUrFjM+v2MEbcA06*LafVGaW5kP(6l88`xx~Q_gj09E`CpqBWl552p7bzUz!cX15*x#a|+Nxv- zTHLU`L|nmmQW+@^)7xUFyg90H{|ZXfvNl3>=9dPaww|?Y{1GcQ zpcCTEd+tztlTA5DBlu}@2q!1N$Jt1%!B*1Tc%;dLI4bE~g)E5h{Ab;eCyNLdYh09o zUNrsMf4%(P54`ey7r&T0IB)p=wO{Bga0w1e(z(Z=?M z1!3o*H(1EH)C&}=!c?jSn~Op%2R*tH?peH77MF@VRKt~oQ{oM;t2$OD-alXBj@QqV z^S1dCx4vPXoHx!%oFtjB*A_IW9V&U=inRWsI;S${MYYL&&WktRzU^oK__bSq{;^GS zUQ|1X=e(%SrObIz?Lfv0@na5qD*Ddh`5fl;&{d36m(l7#rXSP8(R;UFQ5NhMt(S&Q z#5%JH)DHWF2{^}Dvs8JM{zt9n4jf+J)H=IdINeo`no!>uUyGm5v6j>MX*+qrABGF? z7RMH_{}FI9{f&EG_rovU_mz*{7vXSCuB0D*=5yzL`I^7~&<~k}s05XZJD6A~Q;r{g z=5IfH)kR-<-~G(NRh(q{`(J;}4_|-VT_3uKNmEGTMAk<~bH@zhGWdfH3sB0-$f|ff z(6p&8vtkN4e?A57SXy2|@Dr>GI5ba>*H5oIpR?+9n{f~WzXxv_GSStwkS%s?oi%9NnW8+|!bloVCbhQ=668c5aNdU?g0eaVl;lmFLt-5b6q|n7 zZ9zuVQRHQD=337_;^{uyDe$|7=ZJB<} zgI{{@mUG_y^D8!;tvGcAfk4O|r-J6ZGcVJ;46KzxU+JQC5m4ELaEEv`g3~4g?iuUC z6-JBQew1KcCy!Ly^$4NN=4b_?f@q6_BKEjX6b0Zf!foez1?oeHOr;EmP>LA2Ez`B9 zc<3n^dIAY*Ih#XIt)ZuO`J{yg9L{oiq)-=R5&N2hnMkg}&TqFN{a|OlpcXq%QT4O4 z@p16UaReKEw4Lw`9oog?q+&hbHP@M=gWS4)8&iT#-ozO(1acDAfE|Gd0zRBDB!?qo zKAu5B-rjI3{*NdiCl`$w(3~fPP;>-)!MSc7_dr3v>x~#x{7Qcxf3x?=*m2g;5pxP0 z%{}HOWOp0`$3Sn;<%Vg(C^H)$%P^enAHwt|A2I0xV{B%@GfRlIA~xIas?%C$;=;$E z&Es|><%_dtjHhiJy+iC2`N7vNb}pYcyZhm1a($RPD~F%6InSLr&pEq~3elLvhLXry zNwq^&qXPO@rwJ8aC&$WKSDM=+^x&CyGgSbEPx~U2VLxdA~V>Vh#lUH*|zc~ zcQhm7p=MBf8@(o@aJ(|G3QzH1EKfHu0Te(^1~3r&gFJJe4N4@y5fu+cYAnX|WCrm; zPM5G2$~{&i`Pkvyw1T-ZVwIy1L`*3;0U0SK9mLB&Bo^OlF-gf@2b>BbXS!ED(6O4N zKvLw!Ow@o&y(68Wjx_VJU#cS=>j?T&c7z+xhmKr~09lLrc2CV6rSMF|L$S4oXUjk{ zsv(v;`37r$NT?3LC+e>(5RL-csqhixDi4O|dmMo8g8Cfu>j&T|yPRZ_Zk*cYz-SeQ z5V&|WT^x<@b}-^O>%jqd@Pw=VI9r}^LD6dJSWFRryiYv7DJk~#+>N2Q z5iE-ijj*+_oWMcJcIY&KG5(h)_ybgc7#czn2D;i2EeuJ@pMgeD4u;RCW(HXQ#J(ug zdC|*dUqwgQTb=_l)6_yxIzIE%qq)3*5V`YhsD#ha6AK~0|Hi^jrJoq(s|Sqn)dOSs zm0E)^Y(hv3+F_`egx1!nMHaA<&Q!R3-DmOs%BY8_~0 zmK%$hqgoOL0a^^&lL^`oiDen!M?PF%5d8Yr{odzpJN|c10ux;J6|#f<#5#mw-iFPB zBFcn7;-R&J5uGohS+#cY4BHY@U1{vtL+pNQ(b%()8fQ36a zA03R-_;E+?AzUpP%SSf!WAZfyU-_T-i!D9Ja`S2qF-k~KNScSf@;(7t)B1qPBQrK& zj$ptX*^sx6rTnrP(g;5-nObb@hJ}J%ty%!_=Csf%T4>SIYYd?cXsK+D#26dtTe8+g z6XT5U^~cqQzd%8-f7`t+b3b1xknBvIRO?VvnQ=3Q9L2uDJ;X5BMv7qL0PkRS^T0 z1WgU-hluV2(!E2v4>~ZFBN`1MiIivzr98aQ@(<%wd%`#@PK2QHmbcT*F1wRm_U?2Z z%P0g5+3BWmH`_WIzCjldOeGe`uyCkE?BvHeteX8~P6+MzkloB1DzgsmyqU{mFc8AW z0Sl?x&{FUs$FY~}BKl1Q0)3o%2y%|@K+16u0BTxCO^1$AkVhERT!kO#{W$8OnI55$ z8DoojfDIR_njcvbY&gz`=)LUqNIrtHkWm&FYsN))EFi$@1=fw5DvUF-3)HE2QU!A? zu&)lfMPgG>A@LlBkr;CqC2^&GNEb%~LIT271YBD=~_`JRBXjk&CEM z`Rwl{mo#laAe?jSa)UfAB1}Qoh{T!3*pWF;KpuJesQHo%_l~TIz&89jdNk!I3u;-6gQ0YL=tlFlh6v3f^D6lWd263F836B@-T zw|c~2zj`zv$`CqLtz`hzD@<5#feGrZV}kvK$l@=$jNL2h1t~&@ixjr~(V@0k>b9X2 zVB;?zs)s2L)$^3(wA6x}QajL&93}Y*i?JYYmQEJT1r(G6;h-H7u|OhYQ{)LQ**aJ& z^Ft;8X(x4mAt0Tg?=J!*FRs6s+Q+hD*kb;)^F{n=@^ndr!ES=sP;}8*PMnNa(3j&S z+sMBFDAOi2@(~^@!p2PmKdAP|bOLNJRRG!WbYhw9M9X#pvtg$L>_8>9Oeho;!Yvuc zi7)efc&ij(c|(Q7nkAskgQ%|>ZImRwO{^$LjCsm)Fw7QmfZ>+%MLp`{IzFm6d+4tj z;veO}sww1vTt~K#4rPle%5-sH>PUvNJ9!gWj#00O<(Q0)u&ngzzB-oZ-I!f^k|4MA z-86?f4m>fX<*7CxaMzv)V7n0RG-Qr(Z?zUk8&cv(pC|L^FOwlKt~~-6Zg5Et{~S^I zpb!&Tp*EZ!@C3$6)4#UArY_KrPyvqQu8uQEUdFK~TZ^O04VX>{A50)jmR*z*;Q_X+ z1!D`Np85XFL4ewT_Mc%I>_3W0oJ}*HFq4n)3K9;snq`FXsR5ZqtPY{6!`&)wiXrnZ z8p4$+J2fQ@l<{v+EMkejt{#iP_@P05dFdDBkZ;7@s1q2g4vR7-9OPCV9!=zSjL13` zP>K9P4y8|E2Z$=Y3=p?Bz$Afag93O&6=54wxkU=xD_jbCC6De>aQ{#>B?~SE{fufV zHjhg&qWyXBfa@;B$Q+jfyNwE$f-?xPsB|fC=Mr5C+}1>wg2tw_T(mcNC(wZ=2i=wB zDwF2A6qwzC7UojK&~CXE1MGqVt-WXsKLb-bId;K8fI!nV2D#`lUp~a-hQGTAhhZ^) zeg?6N-ZJC}u z=iJR(x9!+DyXibkag#9nYfeXuUpM*@Msj$P2t>9N*G3+S54PUI=FTZUXg*gehrrJN zyb3NfwpeaB)xUfOp;45;WRdjg;Smu2H^Hc71nGozfFhx`v-;SDW<4oZa21VEQ3f^? zIVg5bBEUzK(Mvk|U_H)NW2ixtdjzcKobm z&FVqq!1Jl72RA(w^+f3*b1`PCb&S!JwR3k-=rJ{MLyu&vL;$@oAIM?+_G4tzcJ!e0`x3a@+l~5q7%Ggq!IV^ zS`?wSV_h2spa``Qf`NwGN+(!@P0IL-Q@X4^q9z)E``a>kgfM;3(EFy@31j1D-|Iu}APm>m?hnAQ)b z?9p#)ArldT!5J%Pj!@A&t=wLbqmEhtMmcOMAY>Wig{fCG1=fJKwID2yTwsni;>XZa zMF9B+jm=>JOgJOmcI*~~?6#I)+eUndFJ-CkAim2(nBoXe|3 zP7E%^g6CG8L{d1RqZ13>A^MLItJ6=Xi-F7Wef>W!XdXP)Zbh~w*0#%Gl*>>k40h+l zSRKF~HLRTY^Ul9$5^wOc{kpq%o`dG#U2A_O21eWlGHv7IIp;R;27x1PisXnH;gv>C z;ls_y+JL&{!b_*{20vHt+VP2Vu?U4xA3B{*!!^Wjmnw$^4xDn-u_J|Xc_(CH*+5(z z@$pZ=kVz1d^AyPpxv4i(m^_C!Q$@ta-q0-#Z*WA_VmbB(-Ye%`tW9?`1_?wv7&5s( zj&CfCVzP-h7_>Q$G1)C^+iq`gQJ(l-#*AW|NmXr#U+Yb+HogG{i~>-AY8dbhuwD?} z)Uf6o^mJi(Q|l?;96U3?ZMCYcId8qW%(;gBn^G zNkoPI;j#^oOHWX|yjMO!<1pnc-a*wc!7ZMkX1HRrIFOkf2K7S2I5Bw(e{mvtCx3|) z4r+de@W|TuA}C;<+CdopZsxNIHC9??@kE8o7nLdpP0JUuO$<=6hl=G3$|vYnK2bhF zsW5{nazdN(@#2YCY{!9F9*Oa@&6#{jzPLQd0G?QC_Bq-s$R|w0)_9P3i+ItL`7VRW zkOu6Vk+NO_8xs|l42e?f%jP7?0K9!pqD;lR=OoIgTpt$`5Rxr=CGD2%)P*ta(wgW3 z93L?BE=_FchuFzH4dzTz8pERwW?t~IY+Dq1K}z9-pGpG2i5m{(vA1yC zl-;$Ik1OSYMny3QAlWPHjrE+$%A3`vB4bhD7sXjGO-95^(lz_C4OMF*EK9R+M<;qX zh+WDzG{c;{ppj+xfsk`+3hq^fDC0Hc!)2eR%g?)Ysfw!xZG`Kb zBC)zQ9gWZ~!Ev`!r|3#n98|*^qwtU^W%#2AYC;}j`W_(?3Fj3xvTq5u3oCMf5K3^i zu>%&a2Lp3SapFyW2u`%u>@VAw3gh=isx8!XCw^&t@s~7txS$pnfI+QgR1To4Vbd(8 z<);;u#h_W09N^U3F1kw?(J;pXfN}S(gvZM$ICqk*Q!$6@srU;xCQ}I`PtBy^h%Tl! zbz))oh>k|L(Ye^)gepoS6`FJ(Lxsc~v)h76%i*SWLx=pU%L@gt2bpKS!3CcAMl1k4 z0hVF+PuM6+WdNmvM(MR;Tska9=JxuifP0LSg#0PybLu5$f54+wnp>QZXhh&7aX1Hx zBbvktUxLdFg4g1RKoLXM!fj2NH&R^)b8;Pq*&hJ#pxvrQdIGzzl`cH9~ z)+P?lU#FBG)Kaci%6DriJCyRxS_<4I)brIU1-Q89uT8c&t~S2faZ(1)`FXJW_<1fS z26UVd3xiLI;0BzobrqU;0T+zN2l?XQ!r4>_cx^nW$rq*9rWbJZ7{cR=e5eF`!)|y{ z`i3e2=aiP7B}#WvFJM)%EUp&-<-Ebbq9?1-A8xL+cU#}Qb2jpevtP(uixV92_Q-#X z1`)8uEHY&21iS0a=?YFfA435i``vv;s&1e{BA%quK8`~Vx_f|3F|ysINp zb!uJ)bV226MjS;`It7q}$PdCgrXHSz2y*%6w?ep5Zw{jeT9o-D0u)?TrzAn>c@>Bq zKRyDFy2t}TJ2UF=tRhl&S8p2SGsvEXE z;FTqmcZP74d<~O9*m2CfiyD>o=t!bG;~vtUMmj&mFeVtjzaffUz6Zq=NC(B>RTljd z#duTKBhzekBAU@)s*gi7(yK?I5ylKyn!_R&%JVQzT^nbwfQ(S6f1L-HQ2n0Ab#Abh zApIBe=QsFtRDfXw7xinQJt+BI!p1ZI_dC?i2Q?F5xxci$i4+Z^1AGH zb2bFOaWkYYd>7&^gont!V@DwS2*(mJpn}j#n6&e%Z=!tm1vn_=KMxPc1n8Ih3v!=5 zGd9?#yD*J%MdmH=}n`XuqMo)B4 zjGtKiOBzpnV)KcRv^5d7t77r~2?XN`O#D9W0vp0&mCuXzs1d~T2gtm?m1E5U6aP;I zXzlIqpMrA#%=WMpUzQtKxo;q|Kr1J(;lIyRe-O%jgXQRIusu?sZ{^suz{LN!02`LU z|1Qe?0Oc60OnUptB(hW_!Y6oxnXD=#p>wOS1g+yrH9`w)g3=*x%dZJgTZGa34ler* zsUtu-fH*~6fT{ms0rrGv?j7(X|8Ug+(KM9Excv;Je=fj8jVsmqD6k2lhPd9UvpKc^+%{G$lEsyFi|g+8sv>=HpLmGs#Za5se-_c z2qJLAKUmb&CGC`$O2q{Bq%{IZMZ5j|Z(&bIAAj{t_Kog-L%aj0tO$md*mYNsX zu2MT}UWp@WUSQW#A_S)Dsz5_Z;HbJf@P~qR50Z6bkfuVwQDIORA{P{<)SZSTRjEzs zoIpcPpoB?KM`#E%cChVO`6i3vFAfTlRr2ZaM z9|V*ZMxfQXpT~Yf2ym!zUx`RZ9om-?Frvx@b|vQmQ%@NZ*sJo6S_UkYm|+wN_n9O8 z7_>_H??neV2|UEUl=(N)sy9t!YkymX^wR2&$NSg+CHn`-E=4CUWgt-p#NtLJ1E%y! z9TK8Kayn)^jRK`{H9o0S8pP#^g{Jpv;=%%AVJvGU(2S4329XmqBrfEaQrqH}z)mF& zBfgZqZk3u!1^WI;z~dfrk$50%2^!m|C$pMVX4NcTFvh?`P)ofL*cOolnqUbWk%S5y zGRDL?$88_H({7oZsWuV>sV=JxW*66J1ZiW>O@6KC5>K-s0&N%) zXx37o?3y4mAp#$R0?=UXi?u(pIP`p(hTVkZZHsUs+n6<7{ zqq{(3y1-OC+6Omdm`5O{uT<-i)Df3c6%LRp{9;24Eo(0GMnR=uC7zy<1_@-Fm0DJoc0RI#Xoz?EWwzh zc!(QoiV<%GSg?GK7n(&YhyFR!0`vXVssA{PF_zHcs$(Yl0+&jL1x{)V7P!n(u?rzs ziRB`o2`+~29H)*8$|O7jCnR$M7s#O#xKN@Za8Z?avBXNLOUk;IR#_)y1N45GRD8LA8ptDu zkK|caQ}Ja+DLUQ)O_BtfiVHLq7icOjP?Qp6DlX7eT%f7AKvQvnrs4uk#RZy*3zUj4 zqlOZsnDGBv5Osk(Nu@5VGAt5yN;QrO6h{Rum3t;|vMRMq z%vb7ip)YWSxW5czWblxP(q!qCl90u0Y{-=G!SPT0@7<Z_XxZ3UCB5U7nrD?pPgEK|B;Hh8)wRg-`e&5GkYnwo7R8=3jyMXMlT=kVDq~>| zqw2Hyg1~l_p;MtTQX+4vt*oi0#{zp*mqsi4NwxKUyuu)>vJUl=lQ`uavVwGtm;28$ zo+aHQOU2_K605IB|0+?&%BxIlfvVRyp}1OR&C;ci-T^z;}!1cykM)rE~r{<1~&GLC}^E zMb0z>XsWsdVTKqc33cL@Z`5h>z&ZG0D?q&vXu;9N{*VH97Fbjc1$zeQmeRe{Ai#lu z|KgQNV`Z}#5r~Q`D?1!O8A>G%dH)QruE1TX6i=YqLd(kos^w6PtEQ1lik*mH0vnax z3-;FcQH@lb)f9Z8)t1u4iWCS;%tc7*%xn||IKjro6VjB_5@_uT#A&l4)!Lo(pCtPj z6BhmjZ-}(yi-Dv7CMIgE-NIwa(3I1#)PI`wFm|qb3K1a^fyYEmpjj?~=93Dv@XZo` zE9+74iiE(enZ(W7WDR1v;l9{E9a))ck*IEAkVVXE_F$1;iwp|dGS|W(tx!xVS~C34 zEr|=v>6Gs&Y^B^;V*wl5L4g)+7T6ZI1)B9)j5|w%*Ur0N3}=hn3uluzfs!{tw!jej zM3e-!G@J-DuU()8mKOPEq8TxQ%`6N8$q@TO6ATKKKx3#t#jgZ4B{%|G;=RDOERH}6 zAuaSbl2HoMvz-N{%CV711MrxU*BOl;g|bvOQEP~@CB26zi!m+`mQhfFBNe&3@>P^- z6BU7G)&-7M8OEw&+6ZuP%gQK}{&AP~vHYFi`}Xbzh|^IQa)=OWNn7X+HaCU8{L6gVciUgSRmeTAA**5oaVs5mWB$Uq{k zP^yh`0_%+DprAx^CkQo2CBUqBF7 zd>5dFNR?{3AkbRf2r^y@h}EifhG=2^pECn#Yk#W6g3zHE##BNx+S?@0*`xR>TRSh;*2gCLmMy9qU{1L+Ah$H zqd*%l1)Asx)Vh?Qj`%6i7C8kPsse4rM_^AwyFf!#ph=FvahU>v8BKv83quIBd78k5 z@-YN15|;&9fH%Wk)*&>r1iax61`ZZv@p#pLf!2S4)_;N4e}UG2f!2S4>c1fCzd-B1 zK%Tzjzd-B1K%TztUy$`*p!Hv%^);SUT|Ol4vfis8W(6d(SN8~3Y_OAZ-x znQgI2nmTRV8}m;_uJ09f;Zh)(9b!LfWM<=|{$_f2ilMSH++Z$6rRUSL5;Rl-IeQ3T zB5EtuW(Wdpaf~M09Ql?=u2<$(_WS^ib)65iT-1Bl*;#>eqB6l;|Tgx)}N1SS3w z@>?yZ%#DOW6w|jWbzNOWIGI*`fbH`~{ln5NIyFKy&E@%Ci$>F1?ig zFVI|if#%r>q!%6V3I3pB|UD9IIMk}J?8 zSD;C*K$Bd7CbzNf-NQW|1#Jad_XMhYf~5^DM{3FCJ0XYr;;{w3$!4iK#MsEv^5feimMB1R~2+*Zkz)`VD;8<0IP5YH9A6w8+muV7|x=_+DaFJ%v0vA_xEvd+3+Y*|7 zXX(-4)MmNCm!`8pNuXH`pjjEE+AuEAhE;)P?*(eUA;?Bmfi_bYXu&9f#(se|Qx`ZY z`~?~<1RDPZiWY(<)IWg>q%{H;YUNd+(L&&2%OKHb_m)U>^vVd*@Hdelq=ju-<`pOS zq?`W)ljWS?P#EtukW6tZjcvn92h5YEpO13v{-0SBMfeOKoOh(9Uv0ZqaSZM{9D_^j z7+i30cXCq>87?5b=mLy%_JXT%sICVj>~qudNKS4_ZZ>ez@WS|L}ypo zGR~q0RD@PDZ_iUJZi3XQV%{9wz?CV32G6Zp!8rREPtEWW2;6o3c@W)!0PW*OWA@bJ z3(!?>Q8ho-i_1&UIYS1S+B9T1$v=ya^6@f=;^Ra(&5ZLr-0^=rj`cJT#pyE~{N+7& ziO-R*d*+{7yc#F3Y|fyFw)c=5TwnH~o!J}jEW zJ>^Ws-&q{bbJ;e&&T*hycdf9;xJfAWH+~Qdg4>S|MIR4R;O7`!^bO#I0ZxDE%9w-~ z_~2Bw-ai-YXr4LfWUo<;RzEneOb`K_pAu5M!|KGfi4ehcJ%&g)nVs;e;Ir7;X}Bx{ z7m(w|tEu=UIqtq~l|B*M&zQiLNY=SJKet=NLO;3rx5`@#KcJ;?!ibwDY`T14T%_Q*d z9iSerg&-VqUJjU8T*Kdlw{GBzrUqX_c!$9c@k^)M0gF9%Qcbd(i4D&EK~ErZ=(5YJ9AxmM(|`DhTY#zh~dMNL9?wG1UUP+gc>{d*Xm#khq8ZUwOw)RNh5Ry%~QGAF}h|o^o$LmzJCiALYocR#0R(Lsh6hMF?puhCU5h(1A_%mVMWs_w zbZEqacAF$l2IC_K)(mcqST|_tqb^=E#PG1D*WKo z-6TT|)PZ@CXA8W=iRd@48sH)oT#_(IvcI!Vtci~8yNbN(%b-2hNN{A3{(wgV5!%7+ zZw~RWP?5EU0R)DA!@#Y`9ttEuE5rhA9K%1yizwA;Y0{R1joltBY6^4Z#Vu#}0CKG+ zyaG$0Uq2hFeE^E@wSFrD9C#kOxNYO4waGEM`o%8W;}!ThXo5rdBxy$&lR%*uZimB7 zGw3T2?-vBa1-&p;y1NO#DgKWy>-0zQf0xYBc^ss5bTM#U^o^7^!Q=kF&5RvB)~f#1 zV8_(4M)htk6t{R%8&^{|IOLCTc;y9EIX-W=u|Mt|ZleN1xF?h&X#(`e8Ti8obT{BF zQMC(JMp#9x*Z3x+rH|&Wp8?hlRSuPm`2&u^1u7BhpsPY2;|4n36PG7_$GgROi%v0q zMgF|ZF10i%DmCs87>tYYFQR?t#o32D2(G`{R1m_8Pk-}U%l`eAf}IJ4eqzCj`q`^e zpaV>abgJl)D*M3WsSMUann4MeN9`fQl0fCj{-MyAlc+J2j?;>(C7|vvTFdKFsHZA} z8iTse-*xnbT@S=S*LmFxx=lqZ`^vb^kOCq+LNrBVa%SjyBl#mmcAdt>wGpI-kFs;+ zwSjdF-2aU$)w!BWk8qT;+9GxO9vh>CiX9AAEUdNKEjyyamg&DVX?i9^h{KUzjug znCl=OIG@8GSW7AtbbxoLBLVl9RTpJ&3si8;(t|;ASV-SF-H&g;1Z03qH|hN7%Ad&Z zC}EdfxEZ7E<1cX3-u%4B=j1&~HTTO`q8=(Y{7~7 zIPcQLRe;Nn_02Q#WFwOJ$n&zexN=S8aIe{Lp2kMy;7r{yNBpQcaJSU_bujXwIvRV+ zaahRE+*<}XSE`})h#6$>d0HLn11aT%115m;`>MOJf9&p_Bq_VA9K4lom>@|-5amer zmV@0@4tkIC*1_APz0737i94cj-yCO3#Ry= zUQLBq0||js$tfHLeO%Jv**a%rxEB`A3A|sxoM-$0^_)=pAZXTKeVyHiQEP~;z%<#+ z7MD}&&H#VjA`IMIQS*$O0ATG8y^BKpIh!NGX+N{lBh2>VRhsybaU3x(dN(rrG&`3% z3j8DBXrGLdb|bK`jRTNP)_H9`N@-l!&Vt!}Y$f}?W^O3%i^*Re;gS?p24d_{Q}wOM z^uJfg?Kw&0O-G;}!y6?QxQ?s#o!wp^)yr_%7y#EA6ovh=UZxq4kmn0rNVT+!1dLbH z@$=F*x)}FJpS{0LgweXQLR4{&Ob_tB5nP2$c|FNTQ!gyLM{E2r zB<|%=5k5gQz@Z#TSP9N?H6FbKUfhGs$+SBQp$}FGW|U|bSi0w>OQLwap{%RC)f56y zoR-0zf=~HuLXEXaZne?}!_7hKtiwm)=N5OkJ0j%f%R^Zq?s`&jKvOf*B*9MA_RfYI zDW-50L+GyAwIuXdU}nNiY?%Gz`1}9^dkDw$JB4+O*FzaP19`bf)MrfwUB3lZ5{834 z>iQSXjP2)KE85#X7tvwv;#&Z+9FsINU4J*M>dpw>E#NDH(OrfQ<|r7#pioEOVuFvG z8q#!i@Od5nIcl_lmMufh^;&oX_&~&|z~A*d$$Das&oOkQu|jYk7d7^VUxYh!_CU`Y zvd=^a5OqV@`MEqe-<_H8B_q+lM>cR)CRY$7oa+Z-5Jpe<1w*0<4^Q;R1KdY=1J4!- z={w?!f?MCeb5;at`%4SZ$u*LF&H6KqM9)ym*QlFQw>8> zSFGJh!aM8Bo6;&-K`vb7#YxAUN%#OlidpYf#eGD=f}iEWfuuG&8TC8({~i-G3R5Lm zVp2076_e`Iv$m#Zo!Y#s25WlOdDQ6{F7eg$j6CaiI6cEu4Rc+{2hoy{h3Q$F5yCE~ zXKlVg4o={}Fq@t+up82Q`KYFFyiN?+_&JU+J!{iFY~i~akdRT02`zlwiBs1cpV5;$ z&&e&^`AFR!rP{%NJqlm_;m0`O(5G_fH57BMh-e^M#W!Q51$*ZuMWYZ!yXzFONT342 zsNJ(Z#PRxdKsR0onR|pd5ko_7{g>-6zHIXyZ`$<8fx!D%m0$4K0)f9!=9L!CO26jz zX8Nj2rPsm`nW02~F#>FMdW=uN8-)wk|`;47EB^OMmdqx$Oi5!KPhCMuUHbAjqFbt4l@-`icy`{%bR{B^9qpFrDi zk)z;-?5*E)JbbvgT*<*u8Jl6&<@zx7h_GKnw*k>Io2WU>;$bimR&!?0&1FD90Yim- z%mPN+X1fR*!qY3SAZ1G-lCwJolEIzXiSTP;{tPE_s7MyXM(>|0vwcUy|YlmFAN48X$#o{ys8nJ{x2NxLYs6`;|tmF1v9IhDE?xGxw$YSEmWsWxpgJuTCn}*Z?F^hv^tZTT zTdz7b+rzTK_P|D-s)j^HL=nui0bA73@MmvOMVlGK#55I2@H}Y%AzGXuAUt_IdFUUa z3u|UCbhp+QH2pf(5T&=c&?|jK$MDy;g7Cp!QVCyrC;IquRGyrQrGC#-SgQ>8H zN3B2xvKac zPtlWS6A7VJ4hIFb-a#quJJc8|1}|VpVGM~DC6`lw^ou+?pM*(297B@B5CE6FVIzQd zecl3$tn2~5YV3|0v_OE`ge`|74oq~@a>BmR92TO1?FjINu|c5_23)c%$M#Q6fcU3)Txrhb6z)?Sc5&;)IVk${m<(@$22^dN!u)vfUTh>CYm z%|bl1wP7Cdcx%gbYN!-pGjloVs4ww_eAUznj{G!5|)9|1jj8ze#)p27wzd##g5OE6ov3iUVppFJe zO6Kw7$o%P?3SM&q96ry9CP8m99qh-aYZ>{$BRMO|bp{j)e1;Fg#4S(l<5oaStm|B( zDZ0*P&~?_&C=paCZv{?cI23=I)vSSiD%XEGV0E;R1Y(U8e7BCV+Q8~UitnpSF&I@E zz)fL}#J=`Q+k^*R;|>vrLg+h`Bn5^s6b*!>JEGwv!zz;TCMx*xNZ+eKwIx5s)ASy? zalu*~Tuy&LNTM*nh#{FlyZXcpEKM`^{FW7COHU=6DuqCxA2@!VrLI+8;3{Re}Oz76Ky%*roztqT`MP6z6jmd=oZiz6o2Q49HW|P*eIQLroN@Ye3~i5QPI) z^X%sLGM>%hkP}qU;{~ zZb5}(D2$L{%;6nk4GzaqL41lFDHOp5v32$vaSMP>a{y)HTt!wFWjJjlGN_@L&mdKV zE;GR{V*tpyoe%SrT5kb`D#0&x(gkI+S!;`kWIFb zqJ{rs5Q#m8M&A*%>2$x}nI^5a`2mDA4Z{xu2;>Z;&!#_sCb?q9ni5#C?Dgi{P@tTV zECOjEO~6uIlU9gO=$@GDq5re5;F_O(z9x?fvswmdl5$ZDT!eV+;m(xGWpYylg~*Et z#tOe&8iY3k4}jb;SB8B+23j`LDUzXbe~JREr7VL^luosUWz43`@BZ9X_l_UcKl+Eq z-8W2g2LC_m;O`IduJHdLdK@ZfOdvOpV`cKrM&(b|_DX_T*l#Gt4pm4wz;|&NxWe~s zrsAAl;FKvz_H%laHnT^0Mx7sXjh&bI=sxVEA)jwelLTXTqd?LkbWsZ9`tROT`8l8bsX%3cCvwhT9+(2oB1C z)z@`1Y;KQ^*1}>VL2IP)9+`Sr=s@coth&fSJOn>L;9z9O&uR1G@le1cUXM-;<3hx- zDt82Gfp<#^fr{9v1M@JFH&+bseRX0ID0nZjqLet557Nu=wCnace$}F<&p&43l!ZjH*xibU#$x_MOoctYY1EPnqkf9;ai9$CO z2nqH>fC|dpWzt5891{3ZtM)SzHN@#${v0)JIJuX$sBpcPZ0!U}?)M?VVO_Y%46t!bY4O6XA|8(CY1^O`k+BCNjB8zu$1>()Qi;r4--Q z0>Si!822;o_J&|_AGdy1;s*jimmZ1O3u~i`}+cqL1a|L63VK z^fkq<6ae3U#P*;B#Lh>sBCRy+@H`cpDZ;)h_*q>{+q%^el^#B0MSl#XJ#magG*)t38?H|vJ^`^G;Js334d^$%3sIYbfk*G;v{#f=InjKmEWMv;`fp1 z8I|(E11^0F$qU`-7=lFe#Vta`!3HML_rRYb$yV^NzX<#Dsu2c9Yc#+}#>)*_E}bwt z03>5mf)s19Z@him&;IdixBmQNoA@oBcYWtQAHL+{U-`lmUw!X2mwe#IcV7Rt`=j(_ z^W#f=DB=VDDWpGp9k~hh)V|tek`Vlg?DbVLR>2XCQ3tcvGFc|4M73_o&gW|_Fsliu z6;#+Zm{#WRE{aKd{`@8_{ts-+-ZP&q`?=Froq1;-Vi!4vVUFj#5FoIKMMK6BlJN~z z2^WYN%Fu4ICPES4pi#i8AVx3fA=J3xv4^_k`~ZV77!MxdcLF?_jUwb@0-{3}X46z$ z`JgS3ALO+84GemHvV!3m!L|CN1-Lej#?0lm8+O7raA_9`ahD$M{v?u$xc>ivVsPDj zV(|5NSPZJEHmrSve1Q%2H{J-+aRd8wyx9)xawtPMivt@%Sx{2XXf0^%vR6{iI41GG zJUPf^ln1QXGs5Da=q>JL$Iq!+FKW%$=nl(zki!A5eNoT8GuZ{K1+f}#)62d})V1Mn z|D!k>Tsw{A^MH>&GdKOPJ8!!2ywT)0BW@V|w7~&xrQc4%WVaGmc!-Fk$dZ>fs*!#= z9$Kp?jrecQ-01vw-3@vSu9H64Traby>!eYxbe%Nr%g6^6=G?c#i9Dj$QSNd`K=wWv z4Zi4uScQcay3~wF{pC1Dm*X$?5lI z&tnkPmDOBxEBXYVhl;{*CuD9;RW#0+Zr0qh=hLzRm%i4{>F`n2sF=Ws1FAHSf$NoQ z39}Mxv&Hc|H3j>b{T(~b1sPJ)KHIHtsK;Jk0LNq)7~$h`LX=Y+tO#}zw3z`IUpdc=5Oz{(EA5hTs4z4nRFKPez@wj>Yd~+ZaPljErJo zmd=?2XEHaiHX3Pm-7y^HZ>$KDBD0BzWNH{02u}9bEY8y9oCfoTQpJu;&z|4N`TMBG zGIZ>dK}Mneq8yJ>7Ufj!COX0R&%9c$ZedCiBJn==o#4)`#+Z)^Ug^goZn|Q=_rR` z1RAv~#-s(xHJkCA+#`FfwCB_zI;R*dApKG#*w0VO;`2q=Wo^@1=7H}Ddjqw%!f5GN z7}vy*Uq|^dIOk41Fx?J4In}oM08zv}%*`%)67Uak&9LW1IboErCuGRa{e{2Tfo+Bku|Kjih)>j z1sPBi(aFrqW=KHWJ^+gwrd{W#Hr#x#=EoR-?7abSW$Xn-7i?P_V#nZDk&oEV9WS za$!f7e9NeCg>g2PD|0=(d*CDTKe2-fNcq{nrq39z)w-nSvQ*p1FwbaUy`c((;cg5> z8Vf|7-g2pLf%p$|$|2SBYNPL<;t>oV{x39`WRmA6oi!iIA7 zFl@5SK5x@3%(SjcT(hImBXk~~`&27FZ%uA}`&^l)gN zYc*^RFN4+KCf!G{7sU#V1%+sLd4^ZgGpjvg!z{S?cvbeqf=D{31uS!WQtkK_6(@NRz# z0CGD_;2fw)_M@#YkZM8{^v7;G`kx#o)DV(*$3%j?Qa}|?*iM_>X}l}StfQ+81O1Fa zbDHh!-tRp9=FexCkH-tu6cEOPu2j;QA_}n`L`2yG*J5Rqj!Qqratv>E!fPyfVRf3B z!8rDv#}!d#omJY{D7>;y5gmZo-oulSV3nF8O7&_Tw>_W_tCLAt1Q8RQ02u;WR+1=} z`%UcRYaky?eMvo$Zf8LVQbzkrQC5zMNi&Xk1#t%RY}kVLAWLRi0kh#)6LejNG6HXd zm=jI1i3S>RL`VT@Df}P2Da>(-1AJw`7ejVfdl7$NyEvnWc_>tLi3@Ka&ttL~a}<9+ z$A2CPAS#%ZXaih`tTH~;v+|U_s?cpkq1b=HcGVpS1Y@w9VNybNhIF`2%6>7b=27}Y z2%CSB-`7SVhcj8E)I+S=e}R8)YIK{YUsdzt(-pA;#uugibQUgFjlJTSb=&2S7g75(F;_DRuf zs-zj?gwlOTD%1%kqhKv;F(O*7kH&~ZMNBq(^+(HQziiEd=AcA=I`kx$_ssj|34Y37x96J`G>b01DRzy*E!%+uIztL38HZ2R$*!fvgOdgDYJ#@? zp3fW~VjJm-0fHJZ%WW0--Hd3H^fdNc&7#o><^nUD=Ws}O1r0UBa9Et7K$^KdT=byL z=5UA~4u|pvW545nllL}oc3ow?|33SidC8oafK)n3OG{e?R4g(nM^X1oSDgse<)KZP^3tail7Ln6?zd66&1aBt=y`p)myJzDPI2Gs=bQZ ztM&d->jmlk{+?&8efBvslZKai{e1pS_nf`gUa!ydtmkb#Ywi9*2C5Sm(b$#M_w?s~ z=nDi8?tA1Ie-OINAJyNeqVnc$-gNTCyI7GGW4v7}v-c?b6^w#=#+W}~#e=0(=w0e{ z5V+rEh9)C&8yw}Dtv54qahOQ^wx(%^&6&FyHxGiTWP_WC$jEK;*hNSE?kXrU7)oJ^ z;jk=J*)orv!HwgpMmXVcuVv$KY}TZeGfUZKBJl_3Ar7yWKhDAsCzb2$76lmhh$Zyo zr^H_PJr;fsh2NXP?+xL1Z}{D5zqP~RKibjh^lG7xx<>k>D);0&NRU=!u`W7`+>aYq zQ{1Zz%Xq|pD*m)rfd%C4fFIlOI3FCWqaD>8eh6t7h}FEhpi{*JXsZ`mODs$_Rzc~w zKF}L$=`CXcv)-`4rYC~dA{NwGF9ES4IEfGzCS`3B_Rt~8>our2xQ4q~Z! z5DWJ6c_VhpED_iWV&P{7D04C+8k&L`YZ+NBh^5vJV(DKoh=l_oV-O2b!+jqn)}{Z1 zXk=S<$A``BN$?Bg3zlTLF&wQ7e${501;;4tQcHiC*RN$j$AR243d-pWP5}zSQgFJ6 zycQrXTHuIy2(s38j=s64+E-pIZv$5I$ETW+nGr1wRTqeVuC}KfmW<6ImOH~NlBwqO ztZ*@U-m94)vd(mT6-c7P+CQg$fA&9#8O5L)!Fa?1NddEw^*|>o30`%qr8*y}EBpv_ zSOlBY4b1)TP*upc27zV3wBu<| zJ1jXUY@CnG@FT(?2A6h5Qfo2m*RhX1M7~yumSs*|4aRDPKdKfr(DPZ*H-A(uUvj69 zh!d*3!-9K4lMWU#dquktc;+GA|NACN!Vn+TQ*^ogGlx}2;oEk(6*MUB z#Q!7u&EIp+ulspt6&zr2PZUh|%VDt}A2E};2J}fbA>#QNlgU{i0QPl$ovlHT1B|*f zHFI13J#I|um{IhNxcD9v_NeBmaq$_e=1-@KPYGfm5=dc1nY&E7wrLxyy7*MCBL0ut z1ri4$Oi|guw*Eb+AAkpx3abUwSCx1%KOx3oV^$R*6aOA#42XfJVg3Mw5Mq$O@3(+U z{`~w)`ip>% z2th`ws*t5nrk;wLSuKP_?rw=HKtpMncrtR_8!QiD@CI8F5RjKCCUKTmN~|*`lP3B5 z%oD79AwC`oS4Axu_(3eRpgr=gIx0{aFvHw!=J@J-j;2tStQM)>jSn%migA2W-BIF$~xqRwSHY*|j$ zAM33Y-^Az~v7tOHnVY8audiN#C0dq-TvCrvPZ5!InNiY^&}}Tdzt<1E9&ih)9xW*C zW~x%bH)TOp3kwRTXRx5!dSlyyLL&zW>a%FWnykwBDKt(*m~ED1JZOE|9n>f82Pf(u z!43)`%B&@H**^o>;9<5+4d@tHJ9k~8#>-NyKgiW5HJ{{o4sjP{^GPSMkFe)T<`dPT zpTh<2mzEGB?L}7D6t1xX(B+yb6Mwm8no1XyW;!U%R8Q=z3Yuw$N@}Erq9?w{w9uxi zGwW(+Qb*gmB>T*W?H^&91znP3N6WgT9Xo;rtSw-s+yAR5lTYpXtxN5vO1YEqE^kq% za;Jn5EIt$a77k$fDke)xGF{6PtE}HX6>$o8r)`%RO9M%vx>ZDP{!cRe0m(5wNK>nz zNajCnPN|Lg15$rt)M{Q~&4U#~{HG?>^SjIgzP7YDBQ?g>l$aj~S3u$pH6|1f{U`u< zztglrEw|=O`O$2Qi`k(1Tc5AC?qWTDJ zunwYGR=K5<1nx>9v60Ck5?3N{B(hTe2NJwV{pWRjN?1BUwXH??j3y7-qBd*J+Tkt@ z)DjSOe2Xlj@t&b1-MXrxG~6pk)&@}n_N`51bEX%@WN@a-()xmn@(mKCTawMPB{Bcy zw%6Te?y^iUkan2$oMX#mv~9ksRXZRhPQCsE4MVZdtZ;@A6uK4)1`GAlURE-9LnN|# z$f}hZk5;28rqLr@i2Iqunad(JOK>qJ-Eb>i8_8-czU4At8mN)Vq~&boET96 zf{g-zO#cfCDKydeJ165msI9~S z)Ulc->+&8^HH;yRdx3EqW;CM(DPPmmJ1js&H~JwO+P%sYbb)b5zqv30}8)g=9ruo$^sQw7U%$4 z>!9K;i_cp!i%)BwVWNCN)&7xW>j#ewOPR} zU$VUk!J<$|eFmk9QGHHW!vpfiVt84)J{-jo4^X-&F&IPcEYoF`EV<4MBCNz85<$_s zr15s$)dzrI;~jQ;y%&Oys1Pcc3V|u^yqH{qxe7xdR9e+FzP`O&Un;)yRl=tQIZKJEPwbgJR?4-P& z5={U;dNMegK+ZXzWH1mbkq;Y7Kd|1>tCVkEJ*ru*kd=+<3Q*@1nlnv;u>9bgnv9a= z2V8X$SV)bGWg4q=H3nF|wT+2Yk0whd_@NnzOnZpao)vM>BRmJc1VJ7WD)O>@LR`&o zCsYYz^g1F-@M#pNI`3NtAEDyD3LY@SS6m$M8{rrKb|GO61087dm0&Unl5J{G&DP6$l;2)#GHZi5eWi z<`%gkwT*zH`|>{+p3b`E$2T12!~^Q=R+I#kd07fC3lj9-~<37ocPG)#`GZ*^f-JuU|LofHD2L~di$_3Soa8NQYeB4 z$Sx(wCOoEm*^i?}sw~F|OpRX@C(`;@;r`a@WuXl9N}BOU1l!iPlt7e$OFc6oEuU8S zIswt43`JN_KcfZt+!$7ce8>T;#$kd(aeg8Ab51KD7@7$B<1(yXZpSyc{SxuYI7XAp zU487q70U=lzU6prgAM4agEsz=ZyIb@mGp%Ow*tAe1cE^IBSJOn^Z~zShX(Sn)c_+D zBm?eDsc$R_Dj4GtJl)1TR|5AJi}}Q8$P9w`Ym>-S5e>5OtGbQd;x*$&I2il2yn6B$ zG)=*Dez$Kn5T^g%Vw$gj?K?c!rZklVCWMeZk>IC?i*j#%cTBC zmA2XUFnleF0XV6cWSUt|5sZyDN;&mVNBDXik$oe%c+h}|y^8}9n-2q$=>yGjYF>W3 zuk&8TZ8+`rfJt64HLYN{$;6px+=Y?pRx4?H`IRzipOKdk4P#Vl=NNBk4-0i9j7lsy zgCuDCT)MPvFJ@rOk!d>Fw|lS?uu?lw$QBhj7O#Lh0lNhFkO^2XNRG#W^f$QG>S@ zEzY*9#q_0>wR)Sc4RHkBEykgHSkD^i80vEUt(|bF1UN_?U@Jfsiqnr4Ql$>?z4JQ- zb*rwa*~23iwiotQ)DrrmPYi)* z{Xw&AyybRUt6!{2%Wr2Zt| z5BhO6Z$@6F@i`4V-2a$$3taZmGXPQlObLu7EmovXlfSJF=RL&-j+lpE{;x_BY-EyZ7pfMxm^ZnsFk`q|45B+m?m~bxlH44 ztTh^d$pwrj^?%nf^#U#0)T3LNmpZ$m!N8YTmW{MH2nzDx143rMw36nyTFolfN3_}> zZ>T@pa0owolhpu4z@z9uat#^XIR63ls{ZCH+eh>Q5o(qSIeJvpp#6vxiTPpOM!q^bw}R!47rR=3ryXf==MP5~4T z*^QbcGtUqDvv#xa^hM7Wo*s>b9xi1|_2m@5JQFv^|DzS<$HA!~Pb*=Zf@xHNc4BoSzK0G-jys zsyTH%zY0RZ#j^6hjPO;-@^q`Jy;qf>mGdzu4kQ6P{MN^HB6Rh{NbLlDsOsbofK)l2 z@wwf~Jmw%VTG$#kR2T!@CY}#sNVnPnXSQk|0BpOcq|)D-^_=A62iBZew;@-?Bx4#B zC%0Pp!-!$)I@q5d_>#e(Hb@@GcVqeq>u(=EBwCZ+Xw5QT7GUGG1^P>0XIdO)VmHSX zk0WOdCuTNCWK0~QpZ6aZgj;GyLrhQPHKLx_36j~6D<|@_>se7z{$BQQHvqIUio+<9 zRp+Rss+YzM=7`#h<2KOI58xd~uG)zrMTN(La)RXmZz+c&hZ^HHFHxT`qafA* z(}GVpy&Ih^>t7h@KRzUi;Uk(9w~l0~onk3}6$e}@2n`yNXOl+cD;Q$=nN4z{z}IGY?P2?98dcoU&M_sqzU$@aZry+Rf&x?vS0ez zE6^j1;Grt5RxLezp{0o6^*M~5d}(Q&r9kpM3;DVengy+_r)3OiLDDFH`r#AI{}zij z!#YFRfFHRF9q&L;kM*re|H9F!T5wA8XOgdSVursLUcG){SpDyhm# zPt*%Ok@dk8ge>|C-&jt*J%L^D7MNs7n_cvX9T@v?cG2;yIC_6iNKlDSBI<7JjO%|e#z0Sv(Kfn^rUfl?3{BZv_IA*%C@I`qkVI7dGo zV&!pKCedk`F|~Qo;2M!r7mXIQ?9}SCOxzCazf8+c>4EeWMZtnBjB8Ml%0=IxN265w zQD#!4!sc=vg3LI}j1G)McEfFCLS$kKXyl8|HQg3KR0S4_CFK z++xOgFHN2TEuF8cUYk%=uO*5^^K{cVuy?Fm{6Y|ki&vw{#yxKCvX$d+1kuV{WvU5`)h&4C0F=H_(S##|Cb(OpJ_o@YSl*7cUB;G{3FWFB-H12^sfy&Ik<9D*%aO6Zs>_8Ro65dc`!h_^0eqE-054@BYVz(=!) zJ~HD#0^Y=|7jhzv^_&^CZ0H~1v@PKU9_-yzEPoaAx=+PxLE*MaXpCWnmlW!q@wd;C z$BiOt?3$q-m?PNfrviQweUuyUvE0L>S`9d2e%Ku%KY|Ap!7CglW4IIdq;aj0*bj~9 ztRRy0%_X@WoEi#9YL5%N#0ba6Pm^C1S=dw(o3SSbcV-gFXi0+9X@d`b>-f@08Vu1Y zP^-qtjAT`W&M{802ul|Tsyw521@l3#qUjI~1P6@G%(nGFzAvla)vb*E5otI7CaeeW zaSGs@)xdqpVt~$fiiQhw0bw8jJ-N96;DV`O+u{}QAx)8qz>EZ#KJyXH(5W{percu( z%DFXSEKs<|Cs=St$i%;uwQ^73+>vtvY~!)a;JO~6j z$XFsx`L7VCDcNJ>8<+|MWUlxKC46Ji)p(M4Lcx`g5Yi7Jelq}VveN;XDJx+`z=(2y zy>I}=fv0E~0S}g(k%QRg8H)&Ieq$dpMwD(h<81g2S^&-5@q6iECVrR)=~jWr#AvB_ zP}23vB%F*Wiu-+0TnZgTE%|KB$~^H^%sfACuZnW5op0bl!3`n>a_GxnP@E>Xp4#LrjQ3#L zIyuu|iJWc!vXL_y5|r-bT;fTBs4#*q?c{8$(PmU@!>R0wywj*Q6S{3w(=zn65;*=<2^0wxMY?E?Ts?IX(TU=W%rT?JBw zrIbo7sYe-M)OrCVSg;(E6233MI%zV3?d#_C9D(c$@lZGMP?vb%+`cv$rqa+8Kx2C(Ui*7Q{& z;^SK-Lx7NE2tSx_!pI;$MlNV(KIv#R$PiF+c9RZHTAp;E#ynX}x-`lVsW6?B&YHg< zOP0$JW*qo4(UH1VEW|=VEbtVf1KuJ+X7>45G&1u=tUAlmbZd2Mmdagd^UPvYZJtSn znDD^w8|N7ko@h+*No-INf4M%zuoTT%h+5|6tLCph3%>$z5MAYn=P1)hoM^4Su9jMuSr&4yvhO!e6g*Ivy zX{(QP)L)mW8S)UVMrtO{a%x7hnl112&442{!y*f6ep1J|Yew!i&w5>gpo!CY3dn+*C6Rl1cLd~Q=v z`aJ;akgFrTrr-0HBhFUP?@J3h42J+b^!tt_1gSNYK0lZfRuKVv((hSrR--8%bsP$! zSIYbBp<{fg7W+uUk$x{g6;C-ae~_;x5z4RvXUkb-3gA39{o3?Zud#729UZU;iSYj4X4mr7c&(vcsyBP;91e=08r*)ReiJ3MJl2=fXZ_GxU zvW}%&q27g^YNkHoR+br?I1FjVjm@HRpdZPG6EmbjhMxGX(bGDlW0A|wH}Mvh*`wY< zF_17-Y0HPiKt$kyTuTHhg>7{Lj&8|SFzR@7i+!^SU;g;yMTBcKmT+k_vtW2l8Fgk^RyXaIgCd(+WgGeMP zB9Rzr1}a{uAcO-II~O95{e-B$Q0om4LWEnX=qVWyDI#cEfL#?#nXPP^KIH7zHW-V_ zlE{O|6-z^B*j#R0h66`097YDK(V$?!j%gOcD{1vKvwW$H1*fut(Q66@{H}#~P*g-^ zfhN1B*2jEx`D zILL}#PbV-|Q#V%W8mujx&C*+#tE_9%jLcPea?v=*$H;tEPXcjgmiiG$Gy+o&PVw0>KO`s-QA)q>5+ks>H26_Fj z`U!aPhKP8wVq#y6bE^fl6gt0lq!1OM&$K8iqN1n>dZOBcvq_FJ)I|N0dhEhjtFa2k zMTcvJyBUq$-2Q<3I@@qYH9F5n9vxh5%C6-vTk%KQ`G$M&Vr#CVa}y*m7rNnVTz%SB z9W{578}AYTGWwiuRddel`;6HK3rXHUTEKHJMWtN1kr~<(C=5cuy8^*RX#l0rjas__ zS0rKs&eFXBMr|Nzk48FOM}rcJJ{qr8fS_+iaG28?nfbL$C|XZ3;`0ay@8Ou)hmVw!xvL=1KCAx#0DpBb(Dg9Z+UGFyk-{WL*r#fcF%t44-2 z(r@|@ZwJ*`gRNkFuaWhwS-r#G$-))l#s(!OBrROSq4fFMQcrVMQGeFgA#S{F3pDT< zC2d$GRY2l~fwMkB$6@g8Cjj8zCCw_sm;)YbP-L~$TLvU{Pth1_P|x(m(Abww13+an zp_jh5O#ltonAI{%V9?Z}L0Vuy-If4>YqDz@TfeWp4}BOYPoBsW%A3;i*XE~eRY6{- z(Hb#5EUvQtebTU2+f1cqe?{aF(VbV2Y) zd=gDj(BE=jdfDwB)beUuEjM8z4c^ppY7+jt)$#%~o$8LtY6Vuj!&U4vs5>~eO6rbT zqERhJV=vSl#uhA58=NdrSIc=}Zg*5f(O)n_^-d;?h()%ispS<(pF%A!n2hNhbQlJ0 zEX^oUXz5t+U=oAPP+zxZt}sDZ81izNX3lmGT5?`oG=U7E-$pEFshPK1Sf-hK3xQ$A zL1;KW8#NrU%}AyNMKYGvDAGr|^3qU=CIK*L=!TS7C3Qzq<#tdj&mE*{ZLdPA+G-}1 zhq(m_rDB!w304_MRUebCx&;|uI;o-%8L5a>mMlo7q7P~XQWb2^hEy4DiB!|oG;_wb zGO6++tPpjRDl8|WOLtLVmxx4~d8Ak{S`hL|1zjf!{s9R>CO{N~ZB}JGW<;7fODxiW zXaO%@z{tsEbP}RI5@E0UJ-Ind5z-<54pwTzDnd-&tzrOgz`jVYmw! z9V~0+aE0LW(+4iXgzwbM3sDDw*zinwKm&?;dC3h}=;bzjH8OGy0%9P(+}$o(Tc(!V zH@eLc2yc>Fu2rN$EeGpCEk^^DI+%1eDJTl2G)e7JUep0*>r%+wcufDP$v!X0Ah9vj71_+oq+&EmMmi9}b^noJ8rNJXdu~a?1Mp zwXCYsFC6_d0xWaZYC`as&MHnqR+g-6*NBv9IA>eC222WKz`$#(1yHfsPbC$c`O=k% z6xSVW$Wct7Q_*`IbyC+GgvzL+B0xn@ifYsz3|C5VMeaIRO&CCzYJyr2st2C^hwB$6 zj19=jA79ums;hCgc@F!N#{2E2mL&e+9bUazI{=td)#LWz9a7%XPN~zi#vOW2>btG> zq2v{`un>@_V(Py335Lc`Y{kw}Xi*2&Uk~MZx%h<>tNKUOouvLu%4$Bn&tm*lHgvT9 zKxL)VZ$y$d)WO5l%3&q%RXyGVNdg`Eoa7($hh-((37-rkG1Qe16@-kZG1>C>A1}$@R>F~q7+zSGOU5#&n&i2htOD^Xoa;&WlvT)1lBmsQ{RxawjI z+%q33p1+(0Z-lnEm{wF&f_;JdycpbvVVDo5KF-Ez`Y)C)PpIm&^Jhk=h+0N^bS8(; zHCzG5{4j3$2GUp)tJ)SVTi?W{VroeWIE_>STFu1@N2Hs6U>HKJ{+0nd;99A!JyXA} z9$<&lL}g({^M|*<*-J^;Ak#ct!+kO-t=T8yxUo&TDI;YpMrHIi@F`D|hG^m5HZHb# z**H{@jSEI)*?p+eC#ex`rrezVLof1MIltO+!vKoh9D=LEoJzU*s;-#x>tb##g2cM3 z%W`v25v@3OY=6I6dM#z$mIPrmsq(@*0}xX(1W+v~g4cm1MnkUP+^D)=hUFU1dn@gq zZQj>?9eLsVDRTjwc@KbZF3%4=(Fn9oMKn4`d|2ogaM+ZlRUNDhc8P7Ci)@krOCX z`4g%X{qbxZKtu|Li^c?TrXBH>8kB>&CQ!4t+(1o~yyhCfMJ9zY2cn7$z>yHAFg5k& z7f@425#^<0ZLkTf+7%YTDA?KI~QF~m?rc`ax0ELv`(K^Wq> zKvMydB0rH_mAogSt;%85JomPr`}Ew`e%5LtDg0=NXhyQIB`JQkq9Y#?*Vdu6;1DGn zLE9$c5;`mDF&-eUY#s?ZyFwyUeR)oJzj&u`UjfrXtvjdy(mYiB#J_yyD5gA`ied?Eb;Vd33roU_gK8VG-0s!`}oJ1tJkiF zr{@p;%Y949VRnb+Klk^#6PcdZ_=JR4{d=v}bSom{!%7$lqC^@P_{;B4fFSf;VNwJp z7(@dM!9KA=7HRXm6@G)*$SH;#tUr>PfJ(R00$C(R#8VSvm!3*ekwPUJ^a$)cp#&4p z99P1HEln6$AQP3S`bmCp0+oQJlcZC(6L1tVw`IoanUM~X|027QC#@Nriq8bpGLxk4 z&C_HDGHqtl5$AbD8OQ!g1%!Rj?_;-*c|mP}LcoDD%I#T-tDRTbb3xRmM z>VKM|U<2aX6^Dv|fP5%mf2DT!LBUMOioj zhywlD<}8DI)jFvW@Fl^70Ly|l9>4O`VGL=`B93AA!Wjs=rD zRaGRQ+dzHlM;HlJ)%slnI4}cv3q1kA84g8@VuehdL^u?Xs7$7pY0t(=l(VhmC?|BQ zoWO8-&bET1oDi*Y0>kAwO}R0-uAG2RIr;I=lc-Bdu@8n=|E0l*nb-sCv@YV+P&@GNP}vN=g!3ciSI z_NMtE&JKieiXuuT^;PrCfD+KnIiS^~lEUBUgNUhD_?AbaaYAaS?)teyi;zN!{v&+# z!4d_WKC>0%9hWZTXS@)3qz`DEf5Mit!cOOK)QMj8w_gEIon)bAyGx-Tq^=L3o0LmQ zOBhyfKq&~mRR@Z);d0mqrU-cZ*YD|Ve%EU&~@9bNA%)zS5G zsm`vSv#jevmQ0i~CZrh})EVKKyMDg9-XHsi{*^*QhS8i?z&F0?=z3?Vj;@zWb$0#S zWnHItJx*PXNQ&@eC#9Z^N#zO%NJO6WT$w=KSXmp0tUFg-IA+Yf?(o5=ZkjnjBa|Y$@6LsW?O38?!(FRcR}OvUWm+s6`M95(<{{k^V?vp z(xL5i$Qlp;8edZuvz;rAC;UExBpY|BVbg=~9+vKZME9ldz29rkIGu{`csG7g)#OS2 zv2>-uN`M3*vQ!a$rE)zJHt7=s#wvr&`ts~2DZZlS#6*i+B$FyXTA{|Ywi%rG0*IEL{Lc|2`%(*A91oOwd zKeecSx4T>vd)Tsc*E*C}U4%<3QO|rNGv-YK@XV{mFL#b4^j{d~WjOfWa%z0Cm?CoP z3zg#ZVUAHsH#o{68tRZ+IfcZ?4NObt3zEddl7T1%q-u0$cMAAsAL^rDyAQysXgK5! z9HEM9Q@)sP^aFO}vABdL00PBwDFKo-scU3XwUDk4j2 zN2(=?TwU+CyVuX>7oKphU1o>6Ll>;uIs+3sbJ#Q_K&zre!VQdZ^2Bjizhbz+mkFxV zt>)B(WSJo1q#CV7ZAo#E3&=rm8(=@BC@ME#FeJjEiN%-vss;S&e_TmySdtgIiT^-I z@y&Rustl!h1%r{5Z1D+oG#TtQNu^~4*cQE$+dE_eB7SfqWz;zl5j8+S_SI(h)Ri)s zD+&;h%hn%gBaTr`IU|T~1VN2nKV5H>SzXktx=OR;AU7YXz@0@6hwW~xCJ5W5K8?#cvW zk>-F&eZZ!+Gfc|_k_G~S{6uPP0$~9O5dsRdl4QfS7y%;?fkHTdB3C33NN^c}q-_ET zKzuJ$1rWp2-}||9KT&JLfP=0|)5OV0D97I;RRmYnF6apVd;3Gsav&PKQO{kr6NS_W zMGI7C}u9jnUnxclL&3P{04FYmN{QSvk4~BwG4k0C)S{h z9C7U$TYCgSNpE)VVxf70WT_E08`MyAdpITpq07kF7)E|xJKftW1%0PEaR4yV(S%8b z-C;=t?OKw&)43M*;cX!a_;BctB_ZoAm%frs4%_9#kLn^qay@x!WAuy7Utbh0<}b|e zUBcNEkJT+ExWF7wN~KF03}d6W4pj~fV}2QQjV7QFm=52JwhskK)#LE;UpENx!oH-g zDFCkQ@O?{bTnR(B-5Z*U$Oe5a1M0I0SS^kct3RH$SI|1=NkFs=V=*oUE~#n)Rm(K; zM4OA*IB1V|U!(-+eS#R#Fc+*<hMt4m4}(B?(jc@K)o2~xfOG)$aD)VR)`fA?Lo~+>V)7M_ z9w#yiR>9s6Yrct|?U669`q%E|?-7@zT0tKO2p&-y!VK9f8@u^|8t#$6q1wmLdFv7O zV%|19brG_b`lbK}d8_D#d>h4wR@onEyWK^F9yd|bXMz|<{7jH6y`Jh;XZKn>r&6js z7Jd(fU;of*HNPP|?+w2@?YF1+Opv?}_a$nf{h`&WKD1iZM75((QR{h(P1*)z2||jr zKeP&-%_9%udkC$u-E(k>n8&H2%@0)NPe^ZEY##8WYDA@c@B?9?yNeIU zGfjEYX{duFe(?>V>S}zsK|GVWCuYQ5Ja*r|oNg;}Y5er%I)gNF=}ryb?H6Wt+IYJ^ z|3zP=pQRAwo20l=8V@i-Nf~vCXkPQY*&Rqj-Z2fs4mIYfJ~1&1<#CMt0Qw&nR$QiLcX;0SaQ5YZ z^kvl55QSdP!oyOgt-y~JMKR;&90`E@fnVCiOM7{Ke6+(Ty z-FRqPpru;vzSEDdx?sNR7DbxIfiA3_qYZ#xzICUVu=!ibkX03TueaP7lEg+pA76m9 ziDJurgoT`Ap)RJeGI_*r`>a`}g1S!T#^ajC1~B^JnutL!#mf>-p^yt8*C)>C5|YIk zG2RtEhaFR3hd5T$(_ef2E0J&)gVlJK7I#&-P8lwjbm zQ8oirzru(5GQR2C@54#A=8S$c$q?w(oUJ`_5LM$xmPDiwr-+R&2cMumeLz@u9Asn! z$$az$QfN(4WP%fG;8Jj%wk4t@vtYXnQwLd`!#rQo;vlPT6{1N13e`GQ5i)CNAYViP zrVQAuZngf~jwN<0j3YZk`zut-E4*ix>CA{-73;nfcc9IQ+GZt{$HSzndEj8^xw1jT zo?v!-a#dW)*bE>sE(Ns&OQc{fKj6$no{$%(NnXh+jrS?3{;1ZXf+ny;NLRYS>=sd< z|8otc>PrpPJk!UEI_n_lO}3w~AQ6*hTyz}W|8E#RpfBNTFM`I6U;Tot)wb>2?xI!9JR|TEka9mF=Ph zB=jc#w0c*3zuw zu}|(7Df$E>?d+3Qu`~Nly<#Uu<)8<8)LxUzXj}GHJCi!_3iitgC z8$*w^bM)x~?28W~!YaFKh7(!MoP@?+7}ZRbn&CQKfieO=X0n2#?iMbHz2|#IEZCR!M{gsvMHZr21WC^V0 zKWlbMZUuH-Q_s&gGZxC#0rG*Dp|QC?CC%@ON)#pp8KO&%THICPm5NuUg;B#o?_jd+ zBY*YrUw+rGec^K(>kytA%HN~9^0l%3HVxN*uCgM#v%|TEnO?(5b*m(EiF>ia*~z_Z z30l)YA*S#(xR(|Yb$EpYpO^qr2o`2q$8s*w$<=7exmr?iHAYxw8Uuj97yRqLm4>Ki z@n*8Y619dRRRoMGj96lUi<5KYTVX&lXQahpdDw?ub>0&5gnbM65w!FqOHPEMVw$yl z>&o_|T7)wmPqSD}H}X~do^-3hh?N~SKVh`Yv!2PiKc~%ftox%9IeniYhZcqDvNQ$A zoeoH4P(SXzqr_L~19MgB8m12iTT&1}plC1}0G20%8ScZ}5)3phISe$7%*cw?6;mpy zKU@-f*f7<$)D!JF;#P79(FYmvTGUkY24Q#pSOU%%=$>Am%n`?;2=o+#k zgL}q&9X4d5@AL(cq3%Jj=n?WXgw6_dPEpWLbgY^`LAn{8DAHsUsZphx+XOWs2)p{n zd$C(+Mc(5)p+BdY6d(pKIGtB;1f)w4xq-@5E_JH&Uk1Myej%{)7xMELNAM!-1PncX zwj)jetuZoq@J)yzhqf{Vv_{v5%XLAWpMEPOrP^4;vU^VgPl{3JgxxMLl{y~D% z*T_vZ!0qlK83$^US$LrrRN!dQ;H}5=St!b?x60&$wWk5qfK6aED22zZdxo?V+Q5<; z#P$qfQnK~HO$mL9hnx_!j`1wLcqPYsqBjUIsP=tzIEQd*pNI*ubsS*IW)Tyy9&AT~ zR1ByEk<}}+zugOS@5s({tcm*8FyR?yxijdCP6qDL5i-@LkSYIoyVpq5kP*1SA=OF8 zrkWI4W4qUwA!|4wMw+VxY_`VlmZ6ephn9D__;~C<_}de z$yisarfg`rHK^kEB^*lWOo^UoV+eMW8IMeNsycQ(`9lR(!C&%NmauIZFyOGn?Gx)jTDC=v4qMaZ zetp#{ko~o+52_SQ3ejw+mM`ZS{9JxGe^_Mz4?3O>Ampe2qV#+zbvnE38Q41Faipr?7ykiq<(4J@@tDC zpbC8r^26|Dh||-w@jtx8hbrwNm=VEdgU4blhEMK@J^hIES5Y(SjUdX8IqG!8 zi^$r%(LrHLTwwz=ITPUGEZtW15C1&oTADm!Vsa4Dx@VP55?;adG~VIv-f(0 zHE+It#%o>Q z(1B>Y!yTB1cr?yTFfcr8)hkegzyM(6E9FPy2hkdTK=kV4cTK!a*VX#zHp)t#*=Pem z&$0oew=l=>XdC3tcDWzD%L=Z%&i_mZ%Ij05hKxXLH?${8sZTah#J(A?xl+>nQ;u&D zZ~zTviYAJYx_MSKQ7X~1@`Y-TPZ-WeW`Ma1GgZxlE2PF9FC8jhmPPh6$W*ba7 ze(tm{|7~yje1w**i1+2cRZcdWtoDSg_aWQ|+^eJj2Z>gwZIYt8*1bK+9M{b&oN z$A@?%1Kr@Iz8(8LU z`OxF?0aaK&2-JT~<{qt6NIB<@@5&Z*VBd{I9Oe%?-1L>jfO-EQp?{)H0@7JtSyV~{ zMs)vOwf*g-4nNj_Ep=@Be&#}0Fs2(9pry&Ev)RNvc5eyYSFj#WNIAV@1q?1Kg9NHZ z58wyKF=b_hu1U96ZT{e&VfG9qP$O$O*9OfCx5t2H7gH2}Gv{%-2{(Y#q~0hN^lJzx z>^Bs7Sv$$FDygHQc!KIDzuO1{C~gRb0V&ib&hbjhnpEBlM}t((0bhcV(wpj;0myfW z+GpRk@a|=ma*a}<`-ca)%xOv%Gks}kO;#g4rH8OcE$OI#RxdU8VYWz$_2!QYb2%zS zN!Gz3w1SNCLt##Yq2v&Sc#zFVceVXkhR?v&!r!((b!QshQK}&6cMU zrFl7z28KQ*2c#P0^rZR^E>oAwHaz_^6c|Ba&${*NPwKw9$d2g*gEHvO_z>kea^3lD zraRZ9H3Qi7fPJ~fiWwnyVxjd0mjF6C4Om@o4TD}*S{5-~0!{J)C^HTY>AqUkHr=<{ zq5GN}P#*r?p!;h1#C2a%_zaR>G-RA*y`!%Cau;-8ypz&>QM;x4s-)|_a2;v2r6E8o zOpdlz%R^bKbt`{M0+pM0MXF@AL$SSA&Nb0SzY_^P7?JrO$b_+3IvW{%ic6JC{pfZI z*}PWnsz^1Ugh2lTr{J-1c)oOFk=6{v?U z*60=8DU2b4)XwgNrz6n2 z`p=AnNG#(j#G%7pKrEX;%rI&b2PrU6y=Xuq_K?lq*GO7@9^gStY7$#OF4h#Mv zh@wnSavVbFZU^xZ$qsUVMR0M~_liO9uH1ZH+HXbmHMhD(is+9Sm#Ea(e<3F#&nU z+=Ufba^e~pu4Hwsz#^*Ts$qPcl~6IR8)d_1ba-UIvLR=*Vs71HnEl3cDj>wxO*uj= z0CEI%%ZB&Q!ov{$Dg;oEAQNpV?J|r1DCN6bSfrJ&mi-xgJO?R))LkQ2il$CBA}$`* zcPneFRqe(RYM-?A+DfehITmvrmiWU?P!B)0GHi3&Mjls&2VxtNhEgX?aiBW@2Fd`E zG%>K^%CM^Sm0{%?=mLw}(>M^?V8J(%h+0i;K#M~=K&+cl7_hNIQ`Qlq*sOothh)7( z+tE2BH3J{3PYx{RP8P>g!dPe55`(_sU!5rpbxnTB>O);NoFqdhumdRpvlolTHvNtkI_=$rvLzTqw}zNZp!2 zl*_zH>R;`xtnuBbl(i*02!~at%+74A=JwSh1T4#Uc7_4k1R_NWqLw8p=~f6;XWeD^ zvEvtRNMY5ji1&fFdgQ!G8(B=2B7Tsig|y)=NE_~gwBasD8<9NH1`|rs28n^RQBXi< zB~+Y>+oYK3Fx5WGM%P&Or=zSz2^<{3z&V4lVR!0k0O-uI3zleWUzX^-k?)kPo?1~Q zIEOed+6D?4K0JA^?gL2t(dwo_NO@UKPq)%?E&nQV9^uE>Z2_|vahNV31eK8W4r?41 z8WCj}LSa7dI{|CyJ<+o5X~zMo$M~-N&cl&cd?#IHr5CAUR%xFjhAiTXX=wVsBl2lMR~7{&%%Gh`25^v5rf8(w8t_m z^WTC5QSxgmc8&;IWil*~iBru(H7p;tK|&^Ja@NNS1S0Edxr??Dy`rwMAcE+}CN!J? zkb*+{P@H&&E+oMz#P(%LL7ChI%H%FkCU=1{$tlWYnu#)L2oTD$=&S@lC8A96LMRh+ zR0LdqC9GS$fkx6G;K?RGgZO`26);=Eq&lWf4+DXyk&-2^a{Xzd?Fz+s(fHxpQJ50@ zU^NQAB`;G>SMeD|ZKWz5<$UX~J4Me{f~ae&iw;deH=>wIXpR2VI8LZS@su6s^PqLu znT&56(Q@OQ?&%B(K?;_Kaw0aD)c>*47KZ2q^&liQl$D_X`J?}8(;R3+;PPV}Qr}H6 z7-N0=SIVIYbUn^B{erYnl^ab4jj?buWW2>(4ro}S22(a5T+D=MG#W$;hr=?2;8T&T zr>l8%IINII$IKSO-`utGIb3DfUlm+#8Vf>#*VvXsIyU31)xXvWu$}-g;JPZvR2lEh zhX<*vGUS0YM4SW=-=hW}3>sP6NebiD99PT-jYg*o1kN)E29jjK5h5j(B89D;Mz9$? zfn?j(PP;8p%@4~FZS7?_#3$rBj06##HCvz;qqF=6f)%%%*2EzLtwACMt*vJ~4x|E2 zF{l%YU{FH52ATh7=~H=+JN}Ig{jR0Nb*DGA=m5`hByy2hw)9BVl1;n+ltjS%Q1e4vHDBtKb^qJrp)QNFrg=LsXl3*z}MB zkq2AD3OFNdS{})4P-ztLu<1eGRL!qR8H=7C%!Vv_+N!q91Hzxeria>*%eX&dfU6?R zhWRY>CBtj;H!R(6WZmE{+;Kb8Q#+Bc z>sq(KW%9oH;kDWU_2tBW|CfH*jr6zrMT4*NgCFBI>xG`E<*lk^2y3fciL%O_YM@$L z`ZSz;Fs}j|f|^{M;qS7Ox^15a+0YbZqw}MPY}(@90u#3G-3!{E>2-@2wI) z2cxMkm=coa!^2gsny^X;J*OVbnYX5vs{>V=Vp`UexBAHSc;E2u>Mh^I5W||Lo z=OX2!KUywFspIt@Pfbk&IhpNXuwea)5JS=vi6(er^sA$cEOBW`t2}o5;HR*J9{iOT zhLV={3tu3ur=0R=4Te`F``Ai-&VqmyZO-mOu8!1-w82 z)9Sh7E*0CDKV-ijNb`UCK_&c5>h*AVCi52J2y5GqR&jZTDK8}sntTCh3I1b_D=);E z^Zp8AphvLl{3rQ}1Y5iD$%Q~g|49<0Q4*wWNdOiLNnjgZkp%XOBv25TB!TwAW$ZdF zBmua@yv@9h=uO`Z4liuY<;JG{5oS}J%iY8Mst!5MoB-kS;f5#&~m`pLMS!oCZ_ zrmC^lim_I71x;ULtz=_P(KYcoqFTFIYg)ez(8rA$7V7H<{ z>7u5ALuBz7M11Rta%jh42~i5SdB4YM6wynVGm1#+1N)G&My9d3LGcT#&$$9^6g5LOs+sT?)%>NmJ!#FVx3nUxtwfh5 zNnU{;`BoyLy^{Pwb7JQo^`2rYuBn_Gp|vcK3y>M(s^ue*acO<6G16PGE{z~YOgJ&V zOFWg5=C26uDelih?cj%H(A;EYDuj?QIHCm;>`D|96QjH)K1Zr}l`Lc$k_L~bLK^&# zGwpYw);Q7P3YQ4Qxmn{95I1D2*bn!8fG;@y5!S1~2EJ z_CH$HmU%65)in5|q`|Kq;E=oS??rFUnETqB`+nD^D0a%ck~ z%00v9B16s{ep*)PkRjDFJn5o$w?TKgI%LSXk|B(ukReZ7roW#n8KRHD=GEbIB}24@ z92s)1WQc_q%Q_pbWam)P(}vH@&M9OF!d&nG`$2yP!X^D(R3ZJHA+rlfvC3%4Ps^!k zJ+%iRb57LX3n5db1rsu4J0}PkNsKtjfIjE7px9?aGuhh1%#O9gLmBp2RNu7`N(R`M zG^tDKyRU)9PjYr(k09`fy!Z2R`z5O!)}zwL$y2WfQdg`msY1#!&~8<4bNTt9TzLK*sP2Lwc+me1HZ zlr`~q+EwTp<`TTgOkM&kY8j3|x$r8`WY3HeSik^R?js~SX@klH1t6!*3P4~d^-omV z!L+4qx#sOMB1&w=5H#t#Y_H6!t8Y_dS>&nTrDpLQs4E&XQ?x72`@S{pErSY|?QyLM zY6U*}@Gm9VK~w&Rn7z%;IL7P2VC4-!`M0w>`q8}m@};!k`j{mBTV@tcI=P*lj1Pi@@cQMufV^W znu>c>uGNNDP^m?|I1th$)byBX!NPM&d{My951?gl6>k;&sLFR>@W?WDLwEtKQP>l< zHU39#IFgvL&*a11M&~Xm)4G};k7y%*G3&deXf-aP{@VGNM z0F@-=73qdtd-O z?mBWTky7&^b+BY)xuBwz;k+ zf3y=AE5qi4E;|J+!RE({$89|hjz`Z99EWV^0*3=;BXURF_p zE7JKu{z6h7Xy*~pxAVL?cw2lDcvvGeP|*Uj@cA`9vetjXtd9YnWk1xJi#jhFjf%b7 z%o08hVM_qqV{v3_%+;5zVZ&`U#Ja&CN+F@asQoY`%{7Q~$dz5rmDQB0%8IE_E$z#L z=SO~08>K_g5#he_zro)6aNW`GPxAryY~E(lUPsFp&EY?QNqlZ;ZYv|v*ecrXCIk@F`2c$I0YC~n`rtx4N;$ODi# z^Pv>rrM!LnXIJa6&{n0xiFKH%S{#`1e_NLGS%7cgP>_#pd!q72tdZakFuwnF;)7Y^ zs)`~=Y(sqsA7^_a$nrMNbQH+9ph*Pw3UsnUQYT^jRa#9sk-30$+pCwqz?US5F}myb zlkZ|O%5{nplyr!ts_m$3zt^!m8Sj*7X{1L#x4!Pfh-Dp2faILz4066N@%vhHJsi$a z?`8Kh;-#P0M`k=@cNTp<4|s$WEhi-(+s55TUk8j||H_eMeTL2z+{DkVq_^VJt)e+(>9$wA zWu*G1tok}`Uw?g(2js~yoPSR1gt?9|>Dm=h|1TvG)egu_w?Zb?fhy7!TCrO0vs!A) zYq0=q6dR}#exXCT2gO*_@~2lTQyeoWCqC{feYzgwf{nBUzVL^ww|9x*h6o+Bw9y1# zzV%FQYJKA14Fo3RQ3VGo2KeJNm+WoroNU;2WhPo_t`tkM)RizLy zL5~{?5p(Z72pvXaHk;c>qJX5s=$qb?CWJ@W30n#gi-h}SEsW>FaM#f5dlHd?kwZnO zAF5<2)PSoAsEZE6ajr=?g@@(0ci#poMiO#X-S?ZuGeonb{%zFf$A?>aKOMGCRAPhh zGp`Y^6w17$ezvAD*7)%%m~Ovqe59tNMv>I`X-la8$WK-Xdste!FR4HA6O{w4>E=|n zFqh3AYE941=x!oAGSRxF*~%s-j!jHXFPu)2MzSGElFhBf`Gv{NSG?rlOC~S7Z0gEO zC$GBl(u0$iUNJFw`QPYRz9vox7;>Bb6js!|zmcezG-vY+-tCcH>3a^n5neJl1MXPAoL1 zUYae=H?tkn^T&=%oIcxpRGZYomGWB+_h(zar&PX|`#!Gzkfz_Sr_bfG1C*TvAOQWQ zea-pBBMV!$EY6;6O&r^J(M{RhY&J2Q-89x}-ISe}II`GG>f}E!v^&VJpa@)nV3K^I z(nwUFE{%73mNL^*S#x&rXf`!1fF7NmotRzV-2>!(X2{1+vW`pj2}TXBbGXjsnuvhT zrjH&w(mdLnU6>G3vQ~3pu{BG#>0qL5NwkD1?N9T-u=1+}I&FXdYU~^&e z(CFmc>_Thq$SJ#FIHL=vj}>`Oo;*1^vAA%E^l1^>$%)o1t)7^kI05A@9=oMAG1VNM zo}F(_F1DJZt>*E?=KR8ZcmZ9uMkj8e@Iq^1cK#qw&DqJhDQX~L`be|2KT6i5l|UM0*Gv#9-TP202Z4ETTLcDkm9~IdTj2<^yF!KBw=Fqmgcd=n@Jj_ ziP2*~0RY$-=4Owa?s`SvPEjqeoNG;gpV3S^DT4P{YvPup6J)q$diLl9c$;eh@u_+E zgOxY}3pz3}zc6|fARdG>O&=UxoQ)5o^V74FO_Ho@{LaqJHb;+6fMp(*<+2xt=H?d; zw&sq8mYP%0>@my>4cE%{G3Dly{)X{zf7d(({Vxl z@{W)<%D+9vue;@6cGGUAb&!8&E3T7gP;Zpa=W}0vmfTa?XKDXg{A%nMa6OyrIb6!C z|AdPRxysL3NUN>!ajO5%<=VjYJTB#xexb6@?|ObgNZU%;joe?v_3d0QU!Q6((a|~e(n!&sjTi*_Ij>z+46HN`$#DJYVwxL zs?Tau*LQN=z;z0(`ZfH17nkztUhODvgw1zz|2nPVOm(u3A zj&U95YH`hTDQ$skk?RDP($vODu2Wp6xzxt@as5ABujP6j*R5RR=v}SZi6hy5Q-(8> zJ*2;$3-Yn~x5V#lTxTm3-ay_ra^24LCayPgy@e~*cL(>Y+Dt1>6z0ZeRIbUHxy6O~ z%_ekTa_NgNx#aT8u9}#9@f9z=V(LYkFMZL(i!ZtC%FXjrGiC(YOo=92^2~J&<4=+S zknmZL<*npRxhh=G=PEyIZYk|v>fXrj_jA3C>rSq>b182e^AB`Azk_F`Jwn;L_q*z3CZ-+LC22dwE8EI~y)Xr}<@CB`bpY ztohN+r!lZbFNGmpYGAf!<3&r4svY+~V1c653k z)9sdEp^z^mggU}g>=C9KrdxcHy&3O|3Sxp+5TDep)cOg060LC`@b#_fAw7Y;M_*Clj|j1_pfsOBI!TH z^pCEnX_$wtdIg)z|DCf918iuG_t5 z@2mFhKXCo4zw?IIe3!pJ!;Ey9b9RkCb-A+hTwmG_j=ZU z;{VdE%FkIyyZ7mh(J zb=}kT{8J$<`?f~%A?`oSbuZVy=lTd&x$IAOJ%5yErF~B*`!Vjj%aUa6ew^R(7=DIl zOQY;3xc^zMpX2&@u1|86^Zr8D^DpwOw9irYm-zh@*DrJZ3fF(&dW7_QxsGsM!u4g~ z@+q!Q^X^x<{v+4sZ%;a&Njmd?!^v|uB+q}r#*4oFg%^)*+T4~cTV9&HJbA^|)hYSA zF&J)4{*6=e*@}$7*<1#_TJG(Ga+2Ee!!dbdvLJ`d_5F3$x*tFF;{5ixsY0^NTMF)n zsk0Vpp@-L*Uu-(K(@jFUkE#>zQfa<9{g;ir*x^{u8hGEw0$NzpVP&LVW%Qo;UFRvs}N;^*dZo0UU2Uy10OxnZu=b5I1O& z-0>{ux4(c+C>|Q0-^%lPo@bjUZ#>eR&0e0pv~4}2wGOU#-`=~u zuHWa{OCJ3Ps*)SHr|M*2VEY711ykA0r?*UzCOJL8b&7kz>On5yQr91F{THr3o2>~ zzr^!jas72y`sa9_IMPDBJPonpR6N<7Qak!j{rVfb>umc`(jtAGg)b0?rkjXO`7F1v z%*8WMU7V#^^uC*qG;OlSD$jys4^Av#a<&$6BBRTOdI!FCLBn*dr#;*86W1~47pBb0 zSYX9uVhSh96y()rVXOl+TP!Bfp=lhdnPCqDUBE>DEzWA0>=v!@0D6Pi9Lr~|aO>RaX!GbC zt7pafAgG!W7dr^IUz}z2OiF!oYVMferNu=uI5yG#VebDxsVcTE6sha^p$x*sSu5^6kIHuK^h0ek0C!Z zJwYeyNUSz$F^Mr0QzhFtHy;+eFM{^t9C-F{!`9_D@+;of%^#-cHp42W=VavUAdh6r ze?aD)$8TU4$5`98H5DYarfzbKd{5)|jr@ww$8vv9Ims9*WU{T$l5?Ttp zFVh_{TD6&mG+D!K&Sy6_PtP$CnXc2VjCsWJWAYH?UO>56{`r&_ABxXIy@{>wwAq}K z_Q^wYHj56jbi8q-Ve2W+pxpoDl6;fg`CG2P<9dwCje2O@;h7wwjBMJCT;(!<&-4G{ z`v1Dpzs&PLaQ!1!Hx!OdzyksHC#h39j@mny>)_&%BQ~wYF%S)eGE9dEh7xbuef=&3 z^FkB(NO@Fy!;^3@_}m6?pO~D;{olG_>SvbUiV`0joj>d+5$A7Rq8n%Nwa z5fZ&vawR*7H=Rh24zB)kb?hd%af?}nc5*Xor|l*-4ZMu{Z=ilnE4qzz%Ayj(w1;}3 zQGMHKMvhY)+JErBW`pZk(PyXcU|z zk5g9k|7~2CaXEWus>da5@pgmZeCBjAkX*jOW#~A+YgcH`3e&Meycf={XCjHtyZdFh zoq>+YyKU~&%cf4xX8G*t?|9kbta+=xgED13*t{x{cGxW3BuFI->ainRFz z_nN#Fu9U0FRpZhpobIAe7w}s2ra2n~`3qhEr-ssI;O8t#yx;{FXUw)4oXrhnV^BcBK zS;otd+9+zV=o2rxWy{2olM~RaarTWDUEEPs!E=vL=cV*@mHrrB)O@-0Cn)nm%CvbG z&S=5~kj&PTivw?egnSwKcF!$b@7ff1dnGjB80OH{K*#6yi;YGuibfZCX!e4JtqFJ2 zE^}%#>eTdR7X`^K@;!%k#3#jLgU=ixyGXFli6&xtV)FPRQrBnpYssIHZ`FD?ZQ5K? zr#6dU%x^BHd~y%vub{l#wiq;VAefrQ0=#LF2Q?;a(uu=r}1s&()h|W_hO#o`)%B-KcYwFfn@Dk3yrLWnqR@w*5t+1QDZJ$ zjQqTS_2cuBURJd)N#J}_b4PEyg)jsmmL9I!uOJ)mr(d%7ZsJnA;zy!=!R6^(^>D8~ z>t1qL@1M#`@X&$x`lEYYn&*0_ywB&lic2^XJt?ooCi$c~m8N&f zuR6uY1aIjgzx13&@?oxba=n)8IM;V`?dICfbqUuHdcjk9eKl(&f6evBT))HhOI$z2 z^&YP8=UU{N=K5Z)ajwg`p2zhJt{T^$T!_z+>+M`8xDInoaD6A&HC&f)J%eiv*H;vem+bNAT39b@^9J+B_ycl9nFZy4W0TL)gl9}4L2p6%E2vu|v>@~8(qja|3bvg{b& z$J6#byLVInYxeVJ?{>W2YI)Dz1H1QJxBnXcjNu92HNKl_cB!th8^*{qwww2iW%r(K z*I&JV_toQ6Ja*vv-TTJ!?K`<6rfBQ{zdPvE?)4vp_uf5!KW?|ya8+XMT?chjM36r(i0Yya4*#&_(yZs#7{^4`?d z+s3cCI;YmL8^-q^*zv0C_t4~ZJH~)2fld3yUM2ACx>j{sm;C1H>-UfC&~3gAm~y*w zeAkZc`R?swyT*2GyMF&`w&gqMB7d*WcQK?LugR~;$9Lyf7kE(Zz%GAvKE6x$fEO}o*>7bg!z`MGI4*nzSo$yGMiFyv%@sw_dm?I4CtdqWT? z%$wz@Owp{y%RO+k{Tj`K#)7HcPB!koX(A%dl zkT$(qUfXtOxI-SAIf+C;HZPt-Ucz*P1FBw`z-8P9MEl z!LXUx(u}f{W7B~{3|T^SL4oROBiNPz=xQ7!=F(7d(MyAdIe?Bd52DS>;FPnXjTU7u zOkrgY%t)#=1{?Y3={v?7=(a9nAurx?$h{59Z^FM+#h8Wd6%GoK2&<~D@mP06hh`ly z;KI@`-h}>9@y$>_=y(5ByNfJ|x(CL56GD&NIFV|12W!7%pO>dbu;Q^9qPJsHETPbU z2yWBW!P8T?fHqy{?72;Sn~FY|7s!eTP_~hPQQ>1L6Kg4Z6J-m!KG=!p`Ay>;ZjVj- z3naG@EPC}h6en-=SV7p>x9-Kt4hA|X%`Tt=+24X*Nki-axCPgv3{N5|aTgLbv1!~q z5X3#pdvz45o!YchUJYPU2Bbh!g2J{5?2$0H?3MdoHeJVRH31j|w#zOJUbV0+fChyv zY(BZz(H(@Uvs=K3H~L}}O(n7u7jjow^rvO+`k9+VcP(R<(KTU{Z7vvmE#;(uebE|` z+c=PdInkUiK?~)0vdQAmrXB9q1E190_SbFFu)`#=d(mMD`yCAi$8;G3#fTPX3!?5~ zG$rrWraZW;4o)1MMo;gY-SK7TB#x=HinnRg-fnNxraU60!__IU7=dL5TtPqE@2*IB zw&67j@`XW5l*kH`H{tZAu~ut#4jmCaChF7YaNmc%CmRp9j_HR{r_^(Nhl|JZNEcGN zbWUB;C-qMERW7}Ym+Dk{tXq0#yjS}wr@S#u_i9gVs9d~PIlcQo#hrO{RYji1YrD(4 zdD&R9FE1EKNJ8G4w_oi}rDM+O2W)oUsvGMMqmR-`~BtSs?bzocUuO=R@74>Q{B^)~);d)vxNtjo*K} z|1me7D~HaJEYfdDmK&GyqvKR|+II7&cyx@?yT{y+;!}Fsr+nm?4Axzh!M*{Xfe*o3 z;8pMPK|PoR#)AZ?0Rd16 zN&guFIrtm+82lCd1-t?N3|;_FgG1nca4)zE+y-s}JHQoSGuQ|=fVE%+ zXah^YA}|xwgVVt{5C;+92W6lH6oR3E>`byb$c7<1g={PGYxn`#USxkz+oQ1_vS0c` zwh-BkZhX2=6qg`bl$PR?OxI?kG<2`%9K{&{d_CJ#29n|0S0tO_QJ4oPK82JY$)&g? zkIG5cKxL$m#(+YA(o();M@2v>p!5}h&QW}~tdx%AkUTdH*<+N4Yr|2wMuKa?u)n|x zumDU3<={U1$)3&a4~2B4WJGL zK_N&3p9C`4^Wb5y50H%CAiNx02H^97g!7C13$3T2a=7n|LI zGW7AJJ5#reg-i5m!hjC+KpN?RM%Rv|ji>a=Z06wVFw!`>yZxT&uQT3NN@elKBm zvcgQGF1<>!opKPhkj?DxN2AN=d+%ZPTA!BT*a&b||M2Z0)QQETg(epT0N`wWb1yIt5IIt?56vSj`26V|J7 z^;YyLHpNM2usgtE#RlqiY@p4?NL3!7ANN+3t2VL0U)5~(05gGHZuZT${SCG+5f&Qj z)lzL8nVJt7l|7m=mHZ^l1=^bH6Jw<0oOGH}3{acwNG*{H-qqaL09&YcIce)MDn>u^roU;!PE~Tv6|{Fffmk3?%06_p=NJK5RWt<|@Y&>wm6C0jK*gxOK+{v3%TPRH|NcsNZdO zJ-_{w?0#qaA4Q{rs%|%H$Gy#F4e+tEv(al`upEBw77RpS{w;3z4-U!TJv#8WPRwAh z@ekDfDu-{={wA{2-`Otw-TAn7fOqnl(yxlxE85L$h%Azi@pq)j?$j7xCO+e>T0~qa zj)*a`LH$*`NqnseG*i1Xrvd876>Up+TUZRzXReYr!q4uds>|4H{ zZIaFGLvE;@YO$(h=kWx;nmwl7z|R!*`~(!wA<)N3$0UYgdl(oF`XA52zB`_6`^fAW zCw=SYdsnr%9zn=DIKlBp?nFpBiw*^x^jvx^z)WcVAIz;eHA@V6`Ik1q9bgabGh?DN zwqJ$vk#5t{(_uPJY%F$$mHOW-7`LwzNy+VI>rI1Xx{_vW{Tz9bPPGizVe4^7;MQ9< zw(VJS&SO8I?s9Oh9!odpw711!4y|4T8UKqq7+qZrJ??bJ|9*x&hw1Ef?T#SKwrE{{ z@|-#vm!bJ$FwgNEVT=y@PDC6*-er(Q;S_|V^VNd)aBcL%9|5!L!43OdV~%HWXV3Xx zBP82v1g?#K6r6_tTsg4sF5hgYqyx!fLZ@?pL8^7hfqmJh{k zYsc~CD$6-Y+xGl}=a3Ki3yvbBvYtRlI;}Xv$-f!fKNP1Naj0A*$Sqd`j*%Tm`7>Gp>EVI(fj}S_2nE7{NT4PV4a5TRKq43j;>#4la4-_A2}XmlU_6)z1wz44 zC=?DwLN%diC>Dx`65&8N7!HNQ;Yhe991X|9@o*v%hy){{NH~J;TSTIfSR@`v)C6jR zHKCetO{AskjVC$tN_?f0oOTpNNVb_1ljearPsnl{rzgQZ@1%Fm**QTAYIhzhB(itduaJhy zegt}cAm6(7wlVR6qlwNccBe)$Z+Wsax5b@# z<|J@O9_hx}sWE|r*1kKbjw21(xmLY%F9)Qpg%V&7c9Jqc-%P+AbUyde`=sLK0iX0* zctzH%oemjfZ!Z9&fV;m0+tfxEuE%^_#GyWeem+3sGVVS$?QQA{7gSeQFS18YopMqK zJYc#rT~0IR^+O(wH9dil+Kt;!Ex~fvRWx~SVTW=1`J8#RCR~7svEq!{!xBsa2PguC9>4VK%x9zz4 zj=LXt@X5o^Jp0bk54)Ml95Ol>iPhGPn|9Ws&D(JD-Ul8${OpTIj(*5gYMOnvwr+C$ zw6hj3Yu&u#hTYG+cqBD*G!9Lhw_xGore&>Lcie#_Pd@YR(GQQOW=@6`k=%UGLx&!D z_4VVQZTiKQTW&q{$dgYUdF$<|*FF5g;TMlgn=y0V{KZX|Z`*$NAMShPPlum+Ju@qN z!NL(#!TA*!bW>S=mL!^>D79cmBe~mu>w0ldrt`Z^u9T za?RT9?dz@`Rqem+z#JTub;TYQZeD?PL0&a~t{t=Q9%FLO<<{3@ahe3w=? zGOfn+A;ug-sshU+O=(DhKEbOrnWFQw;o1x%-(A5B)ud(d8O*ym76mBS35PoR%eK`98dDlh<0!CwLGtu z?ADU+djGy##ylMhhb8}LCZE%+oH}XgakJj^>g_2-@_aSlliZY3U}bq4RPqXa-!0y3 z73@+SZ;is2ZMEdB86965+*hIF>{gXLB=co@D%0`VM6QHp7{W9?!qQSin#$mrVu&_0 za~K~kvPEucfmUc1^HRP-T__I7yTwD$xL&fZv5QOUwT;$%ZbM3&fBScG%P%lYD`i-AG*Nr|9dEqpiCwkhcEhS0-*&&lV{y}+w(8%F>>=pj2u7V zqfb8Ve)6#Loi=h*c{pA>^{j@**>mPn+iPCh+IHdE^_OnE;+DM!4nF$Q{sXI4AG&7o zhz*)lV`Q7;{_13Bp$w)Ms8UanR;f)=X%)%6dZ{W^6%|zhR2xbD^p%iRMu*FhVmMX(_-P&uu*MV9iz^fUTIcj<&7#BmhG8= z3?`-K8kRoQEc2{OIb(cO_I?b?>C+e+2Ib~W*rkR$WFszPfu2Clo=JNDV>ZTjo)}gGU3*7m)fQ@ZZ&Oc)hvp+3s0x5~Alod*}RPFD#db0Rf~U0<7j zm|CSgcp~)V^_$*MnKD>eWu0_;|Wk#c^@v=7<>`=XwiKmZ+JAs2(Hv+(>J){)2sZ zPhZ|d1BQ5qZa&*t-#riA^>{!tPiNp;DWqe&x?&}^ZIh+f2(kzLn$}&^)V|ubnP`d2 zK>dVY0H;*a$wz-;p?~C5p z-5mXnzaQmRNvt&W{n);=mV`g2D-kGYnfiHASHr|eOXKksU9)DcE;(oSLtW>vBQ3LA zU+$XC-YPklz4!i{{U5Z<`{ZcJ{FgrNn(t%B<{#%9&u16Gl`{rP9ll1$`P7ua@C@FH z-c1OuPUA)S3sP!59-gDP2c3adDaV=>IouaR0%f8XGb~Za@i$4iP$r^SB99A^K(C<$ zdQDy=BtE~5eGL)#Fp-5m1+gL9_<|mNXS&set}4! zd~PmB@YnJmYo@Pkx zag#14n`#yJisEtcA1IrSFkj3u>BtJI51eh4xTzYZvWhQp=g}hgRme|qpH;5gcS;ws z8Wj%339-+~LQx>)XF4)Koujo;R-EDPMl_AKxSr1Nf@6GwnuX)6T4clEkV-R6VHByI zlEqXAe|wf^X*?ZLGi{05GQJ0C#wpZ*vC?48$>aF`M9*_O0nZtYXEd~20(I3HSU5fT Q+dr`snvKg2#xvM|0WOluvH$=8 diff --git a/images/spin-outbound-redis/src/lib.rs b/images/spin-outbound-redis/src/lib.rs deleted file mode 100644 index 1223df26..00000000 --- a/images/spin-outbound-redis/src/lib.rs +++ /dev/null @@ -1,39 +0,0 @@ -use anyhow::{anyhow, Context, Result}; -use spin_sdk::{ - http::responses::internal_server_error, - http::{IntoResponse, Request, Response}, - http_component, redis, - variables, -}; - -#[http_component] -fn hello_world(_req: Request) -> Result { - let address = variables::get("redis_address").expect("could not get variable"); - let channel = variables::get("redis_channel").expect("could not get variable"); - - let conn = redis::Connection::open(&address)?; - - // Set the Redis key "spin-example" to value "Eureka!" - conn.set("spin-example", &"Eureka!".to_owned().into_bytes()) - .map_err(|_| anyhow!("Error executing Redis set command"))?; - - // Set the Redis key "int-key" to value 0 - conn.set("int-key", &format!("{:x}", 0).into_bytes()) - .map_err(|_| anyhow!("Error executing Redis set command"))?; - let int_value = conn - .incr("int-key") - .map_err(|_| anyhow!("Error executing Redis incr command",))?; - assert_eq!(int_value, 1); - - // Get the Redis key "spin-example" - let payload = conn - .get("spin-example") - .map_err(|_| anyhow!("Error querying Redis"))? - .context("no value for key 'mykey'")?; - - // Publish to Redis - match conn.publish(&channel, &payload) { - Ok(()) => Ok(Response::new(200, ())), - Err(_e) => Ok(internal_server_error()), - } -} \ No newline at end of file diff --git a/images/spin/Cargo.lock b/images/spin/Cargo.lock deleted file mode 100644 index 0ef52c6e..00000000 --- a/images/spin/Cargo.lock +++ /dev/null @@ -1,589 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "anyhow" -version = "1.0.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" - -[[package]] -name = "async-trait" -version = "0.1.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "bitflags" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" - -[[package]] -name = "bytes" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" - -[[package]] -name = "futures-executor" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" - -[[package]] -name = "futures-macro" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "futures-sink" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" - -[[package]] -name = "futures-task" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" - -[[package]] -name = "futures-util" -version = "0.3.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "hashbrown" -version = "0.14.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "id-arena" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" - -[[package]] -name = "indexmap" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" -dependencies = [ - "equivalent", - "hashbrown", - "serde", -] - -[[package]] -name = "itoa" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "log" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" - -[[package]] -name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "once_cell" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" - -[[package]] -name = "percent-encoding" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" - -[[package]] -name = "pin-project-lite" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "proc-macro2" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "routefinder" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f8f99b10dedd317514253dda1fa7c14e344aac96e1f78149a64879ce282aca" -dependencies = [ - "smartcow", - "smartstring", -] - -[[package]] -name = "ryu" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" - -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - -[[package]] -name = "serde" -version = "1.0.191" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a834c4821019838224821468552240d4d95d14e751986442c816572d39a080c9" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.191" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fa52d5646bce91b680189fe5b1c049d2ea38dabb4e2e7c8d00ca12cfbfbcfd" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "serde_json" -version = "1.0.108" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" -dependencies = [ - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" - -[[package]] -name = "smartcow" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "656fcb1c1fca8c4655372134ce87d8afdf5ec5949ebabe8d314be0141d8b5da2" -dependencies = [ - "smartstring", -] - -[[package]] -name = "smartstring" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" -dependencies = [ - "autocfg", - "static_assertions", - "version_check", -] - -[[package]] -name = "spdx" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b19b32ed6d899ab23174302ff105c1577e45a06b08d4fe0a9dd13ce804bbbf71" -dependencies = [ - "smallvec", -] - -[[package]] -name = "spin-macro" -version = "0.1.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "bytes", - "http", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "spin-rust-hello" -version = "0.9.2" -dependencies = [ - "anyhow", - "http", - "serde", - "spin-sdk", -] - -[[package]] -name = "spin-sdk" -version = "2.0.0" -source = "git+https://github.com/fermyon/spin?tag=v2.0.0#e4bb2357067d29f053b2d039476180ffa31222b2" -dependencies = [ - "anyhow", - "async-trait", - "bytes", - "form_urlencoded", - "futures", - "http", - "once_cell", - "routefinder", - "serde", - "serde_json", - "spin-macro", - "thiserror", - "wit-bindgen", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.39" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "thiserror" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "wasm-encoder" -version = "0.36.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "822b645bf4f2446b949776ffca47e2af60b167209ffb70814ef8779d299cd421" -dependencies = [ - "leb128", -] - -[[package]] -name = "wasm-metadata" -version = "0.10.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2167ce53b2faa16a92c6cafd4942cff16c9a4fa0c5a5a0a41131ee4e49fc055f" -dependencies = [ - "anyhow", - "indexmap", - "serde", - "serde_derive", - "serde_json", - "spdx", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.116.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58e28b80dd8340cb07b8242ae654756161f6fc8d0038123d679b7b99964fa50" -dependencies = [ - "indexmap", - "semver", -] - -[[package]] -name = "wit-bindgen" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38726c54a5d7c03cac28a2a8de1006cfe40397ddf6def3f836189033a413bc08" -dependencies = [ - "bitflags", - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8bf1fddccaff31a1ad57432d8bfb7027a7e552969b6c68d6d8820dcf5c2371f" -dependencies = [ - "anyhow", - "wit-component", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7200e565124801e01b7b5ddafc559e1da1b2e1bed5364d669cd1d96fb88722" -dependencies = [ - "anyhow", - "heck", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ae33920ad8119fe72cf59eb00f127c0b256a236b9de029a1a10397b1f38bdbd" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 2.0.39", - "wit-bindgen-core", - "wit-bindgen-rust", - "wit-component", -] - -[[package]] -name = "wit-component" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "480cc1a078b305c1b8510f7c455c76cbd008ee49935f3a6c5fd5e937d8d95b1e" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43771ee863a16ec4ecf9da0fc65c3bbd4a1235c8e3da5f094b562894843dfa76" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", -] diff --git a/images/spin/Cargo.toml b/images/spin/Cargo.toml deleted file mode 100644 index fa17856c..00000000 --- a/images/spin/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "spin-rust-hello" -version = "0.11.1" -authors = ["DeisLabs Engineering Team"] -edition = "2021" - -[lib] -crate-type = ["cdylib"] - -[dependencies] -anyhow = "1" -http = "0.2.9" -serde = { version = "1.0", features = ["derive"] } -spin-sdk = { git = "https://github.com/fermyon/spin", tag = "v2.0.1" } - -[workspace] - -[profile.release] -strip = true \ No newline at end of file diff --git a/images/spin/Dockerfile b/images/spin/Dockerfile deleted file mode 100644 index dd4361fb..00000000 --- a/images/spin/Dockerfile +++ /dev/null @@ -1,15 +0,0 @@ -FROM --platform=${BUILDPLATFORM} rust:1.71 AS build -WORKDIR /opt/build -COPY . . -RUN rustup target add wasm32-wasi && cargo build --target wasm32-wasi --release - -FROM --platform=linux/amd64 golang:1.21.3-bullseye AS build-go -WORKDIR /opt/build -COPY . . -RUN curl -LO https://github.com/tinygo-org/tinygo/releases/download/v0.30.0/tinygo_0.30.0_amd64.deb && dpkg -i tinygo_0.30.0_amd64.deb -RUN cd go-hello && tinygo build -target=wasi -o spin_go_hello.wasm main.go - -FROM scratch -COPY --from=build /opt/build/target/wasm32-wasi/release/spin_rust_hello.wasm . -COPY --from=build /opt/build/spin.toml . -COPY --from=build-go /opt/build/go-hello/spin_go_hello.wasm . diff --git a/images/spin/go-hello/go.mod b/images/spin/go-hello/go.mod deleted file mode 100644 index 098c0c61..00000000 --- a/images/spin/go-hello/go.mod +++ /dev/null @@ -1,9 +0,0 @@ - - -module github.com/deislabs/containerd-wasm-shims/go-hello - -go 1.20 - -require github.com/fermyon/spin/sdk/go/v2 v2.0.0 - -require github.com/julienschmidt/httprouter v1.3.0 // indirect \ No newline at end of file diff --git a/images/spin/go-hello/go.sum b/images/spin/go-hello/go.sum deleted file mode 100644 index 7312075f..00000000 --- a/images/spin/go-hello/go.sum +++ /dev/null @@ -1,4 +0,0 @@ -github.com/fermyon/spin/sdk/go/v2 v2.0.0 h1:pMq2BxXio9gsBdPVNCuebCsLSt64yaTS3kV2l1gL088= -github.com/fermyon/spin/sdk/go/v2 v2.0.0/go.mod h1:kfJ+gdf/xIaKrsC6JHCUDYMv2Bzib1ohFIYUzvP+SCw= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= -github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= diff --git a/images/spin/go-hello/main.go b/images/spin/go-hello/main.go deleted file mode 100644 index fe3662c4..00000000 --- a/images/spin/go-hello/main.go +++ /dev/null @@ -1,36 +0,0 @@ -package main - -import ( - "fmt" - "io" - "net/http" - - spinhttp "github.com/fermyon/spin/sdk/go/v2/http" -) - -func init() { - spinhttp.Handle(func(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "text/plain") - w.Header().Set("foo", "bar") - - fmt.Fprintln(w, "== REQUEST ==") - fmt.Fprintln(w, "URL: ", r.URL) - fmt.Fprintln(w, "Method: ", r.Method) - fmt.Fprintln(w, "Headers:") - for k, v := range r.Header { - fmt.Fprintf(w, " %q: %q \n", k, v[0]) - } - - body, err := io.ReadAll(r.Body) - if err != nil { - fmt.Fprintln(w, "Body Error: ", err) - } else { - fmt.Fprintln(w, "Body: ", string(body)) - } - - fmt.Fprintln(w, "== RESPONSE ==") - fmt.Fprintln(w, "Hello Spin Shim!") - }) -} - -func main() {} diff --git a/images/spin/spin.toml b/images/spin/spin.toml deleted file mode 100644 index 17ffeaa0..00000000 --- a/images/spin/spin.toml +++ /dev/null @@ -1,22 +0,0 @@ -spin_manifest_version = 2 - -[application] -authors = ["DeisLabs Engineering Team"] -description = "A simple spin hello world" -name = "spin-hello" -version = "1.0.0" - - -[[trigger.http]] -route = "/hello" -component = "hello" - -[[trigger.http]] -route = "/go-hello" -component = "go-hello" - -[component.hello] -source = "spin_rust_hello.wasm" - -[component.go-hello] -source = "spin_go_hello.wasm" \ No newline at end of file diff --git a/images/spin/src/lib.rs b/images/spin/src/lib.rs deleted file mode 100644 index 3a94787c..00000000 --- a/images/spin/src/lib.rs +++ /dev/null @@ -1,8 +0,0 @@ -use spin_sdk::http::{IntoResponse, Response}; -use spin_sdk::http_component; - -/// A simple Spin HTTP component. -#[http_component] -fn hello_world(_req: http::Request<()>) -> anyhow::Result { - Ok(Response::new(200, "Hello world from Spin!")) -} \ No newline at end of file diff --git a/images/spin_dotnet/Dockerfile b/images/spin_dotnet/Dockerfile deleted file mode 100644 index 986b396d..00000000 --- a/images/spin_dotnet/Dockerfile +++ /dev/null @@ -1,14 +0,0 @@ -FROM --platform=${BUILDPLATFORM} mcr.microsoft.com/dotnet/sdk:7.0-bullseye-slim-amd64 AS build -WORKDIR /opt/build -COPY . . -RUN apt-get update && apt-get install xz-utils -RUN curl -LO https://github.com/bytecodealliance/wizer/releases/download/dev/wizer-dev-x86_64-linux.tar.xz \ - && tar -xvf wizer-dev-x86_64-linux.tar.xz \ - && rm wizer-dev-x86_64-linux.tar.xz \ - && install wizer-dev-x86_64-linux/wizer /usr/local/bin - -RUN dotnet build -c Release - -FROM scratch -COPY --from=build /opt/build/bin/Release/net7.0/MyTestProject.wasm ./bin/Release/net7.0/MyTestProject.wasm -COPY --from=build /opt/build/spin.toml . \ No newline at end of file diff --git a/images/spin_dotnet/Handler.cs b/images/spin_dotnet/Handler.cs deleted file mode 100644 index 43fcd1e7..00000000 --- a/images/spin_dotnet/Handler.cs +++ /dev/null @@ -1,20 +0,0 @@ -using Fermyon.Spin.Sdk; - -namespace MyTestProject; - -public static class Handler -{ - [HttpHandler] - public static HttpResponse HandleHttpRequest(HttpRequest request) - { - return new HttpResponse - { - StatusCode = System.Net.HttpStatusCode.OK, - Headers = new Dictionary - { - { "Content-Type", "text/plain" }, - }, - BodyAsString = "Hello from .NET\n", - }; - } -} diff --git a/images/spin_dotnet/Project.csproj b/images/spin_dotnet/Project.csproj deleted file mode 100644 index f804fd18..00000000 --- a/images/spin_dotnet/Project.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - net7.0 - MyTestProject - enable - enable - - - true - - - diff --git a/images/spin_dotnet/spin.toml b/images/spin_dotnet/spin.toml deleted file mode 100644 index 1049fa49..00000000 --- a/images/spin_dotnet/spin.toml +++ /dev/null @@ -1,14 +0,0 @@ -spin_version = "1" -authors = ["Jiaxiao Zhou "] -description = "just a dotnet project" -name = "MyTestProject" -version = "1.0.0" -trigger = { type = "http", base = "/" } - -[[component]] -id = "my_test_project" -source = "bin/Release/net7.0/MyTestProject.wasm" -[component.build] -command = "dotnet build -c Release" -[component.trigger] -route = "/..." diff --git a/scripts/move-bins.sh b/scripts/move-bins.sh index 0620351d..148f3a99 100755 --- a/scripts/move-bins.sh +++ b/scripts/move-bins.sh @@ -2,7 +2,7 @@ # Containerd Shim Installer Script # -# This script automates the installation of specific containerd shim versions (slight, spin, wws, lunatic) +# This script automates the installation of specific containerd shim versions (slight, wws, lunatic) # by checking their existence and copying them to a desired location if not found. # # Usage: @@ -28,7 +28,6 @@ cluster_name="test-cluster" declare -A shims=( [slight]="v1" - [spin]="v2" [wws]="v1" [lunatic]="v1" ) diff --git a/scripts/up.sh b/scripts/up.sh index 34ef633a..f929a4ec 100755 --- a/scripts/up.sh +++ b/scripts/up.sh @@ -5,9 +5,9 @@ set -euo pipefail cluster_name="test-cluster" # name of the k3d cluster dockerfile_path="deployments/k3d" # path to the Dockerfile -DOCKER_IMAGES=("slight" "spin" "wws" "lunatic-submillisecond" "spin-keyvalue" "spin-outbound-redis") -OUT_DIRS=("test/out_slight" "test/out_spin" "test/out_wws" "test/out_lunatic" "test/out_spin_keyvalue" "test/out_spin_outbound_redis") -IMAGES=("slight-hello-world" "spin-hello-world" "wws-hello-world" "lunatic-submillisecond-hello-world" "spin-keyvalue" "spin-outbound-redis") +DOCKER_IMAGES=("slight" "wws" "lunatic-submillisecond") +OUT_DIRS=("test/out_slight" "test/out_wws" "test/out_lunatic") +IMAGES=("slight-hello-world" "wws-hello-world" "lunatic-submillisecond-hello-world") # build the Docker image for the k3d cluster docker build -t k3d-shim-test "$dockerfile_path" diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 9e64a0b5..d02d0f3b 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -19,4 +19,3 @@ tokio = { version = "1", features = ["rt", "macros", "process"] } http = "0.2" tower = "0.4" hyper = "0.14" -redis = { version = "0.23", features = ["tokio-comp"] } \ No newline at end of file diff --git a/tests/src/integration_test.rs b/tests/src/integration_test.rs index 53fb64fe..02f8f74c 100644 --- a/tests/src/integration_test.rs +++ b/tests/src/integration_test.rs @@ -1,6 +1,5 @@ #[cfg(test)] mod test { - use redis::AsyncCommands; use tokio::process::Command; use crate::{random_payload, retry_get, retry_put}; @@ -46,23 +45,6 @@ mod test { Ok(()) } - #[tokio::test] - async fn spin_test() -> Result<()> { - let host_port = 8082; - - // curl for hello - println!(" >>> curl http://localhost:{}/spin/hello", host_port); - let res = retry_get( - &format!("http://localhost:{}/spin/hello", host_port), - RETRY_TIMES, - INTERVAL_IN_SECS, - ) - .await?; - assert_eq!(String::from_utf8_lossy(&res), "Hello world from Spin!"); - - Ok(()) - } - #[tokio::test] async fn wws_test() -> Result<()> { let host_port = 8082; @@ -96,86 +78,4 @@ mod test { Ok(()) } - - #[tokio::test] - async fn spin_keyvalue_test() -> Result<()> { - let host_port = 8082; - - // curl for hello - println!(" >>> curl http://localhost:{}/keyvalue/keyvalue", host_port); - let res = retry_get( - &format!("http://localhost:{}/keyvalue/keyvalue", host_port), - RETRY_TIMES, - INTERVAL_IN_SECS, - ) - .await?; - assert_eq!(String::from_utf8_lossy(&res), "wow"); - - Ok(()) - } - - #[tokio::test] - async fn spin_inbound_redis_outbound_redis_test() -> Result<()> { - let host_port = 8082; - let forward_port = 6380; - let redis_port = 6379; - - // Ensure kubectl is in PATH - if !is_kubectl_installed().await? { - anyhow::bail!("kubectl is not installed"); - } - - port_forward_redis(forward_port, redis_port).await?; - - let client = redis::Client::open(format!("redis://localhost:{}", forward_port))?; - let mut con = client.get_async_connection().await?; - - // curl for hello - println!( - " >>> curl http://localhost:{}/outboundredis/hello", - host_port - ); - let _ = retry_get( - &format!("http://localhost:{}/outboundredis/hello", host_port), - RETRY_TIMES, - INTERVAL_IN_SECS, - ) - .await?; - - // Retrieve the value for the key 'spin-example' - let key: String = con.get("spin-example").await?; - assert_eq!(key, "Eureka!"); - - let key: String = con.get("int-key").await?; - assert_eq!(key, "1"); - - Ok(()) - } - - async fn is_kubectl_installed() -> anyhow::Result { - let output: Result = Command::new("kubectl") - .arg("version") - .arg("--client") - .output() - .await; - - match output { - Ok(output) => Ok(output.status.success()), - Err(_) => Ok(false), - } - } - - async fn port_forward_redis(forward_port: u16, redis_port: u16) -> Result<()> { - println!( - " >>> kubectl portforward redis {}:{} ", - forward_port, redis_port - ); - Command::new("kubectl") - .arg("port-forward") - .arg("redis") - .arg(format!("{}:{}", forward_port, redis_port)) - .spawn()?; - tokio::time::sleep(tokio::time::Duration::from_secs(2)).await; - Ok(()) - } } diff --git a/tests/workloads/runtime.yaml b/tests/workloads/runtime.yaml index a88423ab..e3b87073 100644 --- a/tests/workloads/runtime.yaml +++ b/tests/workloads/runtime.yaml @@ -6,12 +6,6 @@ handler: slight --- apiVersion: node.k8s.io/v1 kind: RuntimeClass -metadata: - name: wasmtime-spin -handler: spin ---- -apiVersion: node.k8s.io/v1 -kind: RuntimeClass metadata: name: wasmtime-wws handler: wws diff --git a/tests/workloads/spin-runtime-config.yaml b/tests/workloads/spin-runtime-config.yaml deleted file mode 100644 index 9d2557c6..00000000 --- a/tests/workloads/spin-runtime-config.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -data: - runtime-config.toml: "# This defines a new store named user_data\n[key_value_store.foo]\ntype - = \"spin\" \npath = \"user_data.db\"" -kind: ConfigMap -metadata: - creationTimestamp: "2023-11-14T00:41:01Z" - name: spin-runtime-config - namespace: default - resourceVersion: "4453" - uid: 10dd6b0d-cf71-4ddc-abf8-44853f53436e \ No newline at end of file diff --git a/tests/workloads/workload.yaml b/tests/workloads/workload.yaml index b521129b..dcbc28b9 100644 --- a/tests/workloads/workload.yaml +++ b/tests/workloads/workload.yaml @@ -40,128 +40,6 @@ spec: --- apiVersion: apps/v1 kind: Deployment -metadata: - name: wasm-spin -spec: - replicas: 1 - selector: - matchLabels: - app: wasm-spin - template: - metadata: - labels: - app: wasm-spin - spec: - runtimeClassName: wasmtime-spin - containers: - - name: testwasm - image: docker.io/library/spin-hello-world:latest - imagePullPolicy: Never # prevent k8s from pulling the image from a registry - command: ["/"] - resources: # limit the resources to 128Mi of memory and 100m of CPU - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 100m - memory: 128Mi ---- -apiVersion: v1 -kind: Service -metadata: - name: wasm-spin -spec: - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: wasm-spin ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: spin-keyvalue -spec: - replicas: 1 - selector: - matchLabels: - app: spin-keyvalue - template: - metadata: - labels: - app: spin-keyvalue - spec: - runtimeClassName: wasmtime-spin - containers: - - name: keyvalue - image: docker.io/library/spin-keyvalue:latest - command: ["/"] - imagePullPolicy: IfNotPresent - volumeMounts: - - name: config-volume - mountPath: /runtime-config.toml - subPath: runtime-config.toml - readOnly: true - volumes: - - name: config-volume - configMap: - name: spin-runtime-config ---- -apiVersion: v1 -kind: Service -metadata: - name: spin-keyvalue -spec: - type: LoadBalancer - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: spin-keyvalue ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: spin-outbound-redis -spec: - replicas: 1 - selector: - matchLabels: - app: spin-outbound-redis - template: - metadata: - labels: - app: spin-outbound-redis - spec: - runtimeClassName: wasmtime-spin - containers: - - name: outbound-redis - image: docker.io/library/spin-outbound-redis:latest - command: ["/"] - imagePullPolicy: IfNotPresent - env: - - name: SPIN_VARIABLE_REDIS_ADDRESS - value: redis://redis-service.default.svc.cluster.local:6379 - - name: SPIN_VARIABLE_REDIS_CHANNEL - value: test ---- -apiVersion: v1 -kind: Service -metadata: - name: spin-outbound-redis -spec: - type: LoadBalancer - ports: - - protocol: TCP - port: 80 - targetPort: 80 - selector: - app: spin-outbound-redis ---- -apiVersion: apps/v1 -kind: Deployment metadata: name: wasm-wws spec: @@ -239,7 +117,7 @@ spec: app: wasm-lunatic --- # Middleware -# Strip prefix /spin +# Strip prefix /slight apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: @@ -248,12 +126,9 @@ spec: stripPrefix: forceSlash: false prefixes: - - /spin - /slight - /wws - /lunatic - - /outboundredis - - /keyvalue --- apiVersion: networking.k8s.io/v1 kind: Ingress @@ -267,13 +142,6 @@ spec: rules: - http: paths: - - path: /spin - pathType: Prefix - backend: - service: - name: wasm-spin - port: - number: 80 - path: /slight pathType: Prefix backend: @@ -295,17 +163,3 @@ spec: name: wasm-lunatic port: number: 80 - - path: /keyvalue - pathType: Prefix - backend: - service: - name: spin-keyvalue - port: - number: 80 - - path: /outboundredis - pathType: Prefix - backend: - service: - name: spin-outbound-redis - port: - number: 80 \ No newline at end of file From af875d0309f01c18dd62de07de3cd38db120d61a Mon Sep 17 00:00:00 2001 From: jiaxiao zhou Date: Sun, 7 Apr 2024 23:56:47 +0000 Subject: [PATCH 2/2] rustfmt Signed-off-by: jiaxiao zhou --- tests/src/integration_test.rs | 2 -- 1 file changed, 2 deletions(-) diff --git a/tests/src/integration_test.rs b/tests/src/integration_test.rs index 02f8f74c..d88f54dd 100644 --- a/tests/src/integration_test.rs +++ b/tests/src/integration_test.rs @@ -1,7 +1,5 @@ #[cfg(test)] mod test { - use tokio::process::Command; - use crate::{random_payload, retry_get, retry_put}; use anyhow::Result;