diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index bc0f6be..d802fc6 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -26,10 +26,10 @@ jobs: target: wasm32-wasip1 components: rustfmt, clippy - - name: Run cargo-audit binary crate - uses: rustsec/audit-check@v1.4.1 - with: - token: ${{ secrets.GITHUB_TOKEN }} + #- name: Run cargo-audit binary crate + # uses: rustsec/audit-check@v2.0.0 + # with: + # token: ${{ secrets.GITHUB_TOKEN }} - name: Build run: cargo build --all-features diff --git a/Cargo.lock b/Cargo.lock index 3e6eadb..c93f7f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -492,7 +492,7 @@ dependencies = [ "futures", "futures-channel", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "lz4_flex", "replace_with", @@ -575,9 +575,16 @@ dependencies = [ [[package]] name = "cranelift-bforest" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ - "cranelift-entity", + "cranelift-entity 0.116.1", +] + +[[package]] +name = "cranelift-bitset" +version = "0.116.1" +dependencies = [ + "serde", + "serde_derive", ] [[package]] @@ -592,15 +599,14 @@ dependencies = [ [[package]] name = "cranelift-codegen" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "bumpalo", "cranelift-bforest", - "cranelift-bitset", + "cranelift-bitset 0.116.1", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-control", - "cranelift-entity", + "cranelift-entity 0.116.1", "cranelift-isle", "gimli", "hashbrown 0.14.5", @@ -615,7 +621,6 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "cranelift-codegen-shared", ] @@ -623,22 +628,29 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" [[package]] name = "cranelift-control" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "arbitrary", ] +[[package]] +name = "cranelift-entity" +version = "0.116.1" +dependencies = [ + "cranelift-bitset 0.116.1", + "serde", + "serde_derive", +] + [[package]] name = "cranelift-entity" version = "0.116.1" source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ - "cranelift-bitset", + "cranelift-bitset 0.116.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", "serde", "serde_derive", ] @@ -646,7 +658,6 @@ dependencies = [ [[package]] name = "cranelift-frontend" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "cranelift-codegen", "log", @@ -657,12 +668,10 @@ dependencies = [ [[package]] name = "cranelift-isle" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" [[package]] name = "cranelift-native" version = "0.116.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "cranelift-codegen", "libc", @@ -923,11 +932,11 @@ dependencies = [ "bytesize", "clap", "dictionary", - "http 1.2.0", + "http", "http-backend", "http-body-util", "http-service", - "hyper 1.6.0", + "hyper", "hyper-tls", "hyper-util", "pretty_env_logger", @@ -1300,7 +1309,7 @@ dependencies = [ "fnv", "futures-core", "futures-sink", - "http 1.2.0", + "http", "indexmap", "slab", "tokio", @@ -1365,17 +1374,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - [[package]] name = "http" version = "1.2.0" @@ -1393,9 +1391,9 @@ version = "0.10.2" dependencies = [ "anyhow", "claims", - "http 1.2.0", + "http", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "mock-http-connector", "pin-project", @@ -1407,17 +1405,6 @@ dependencies = [ "tracing-test", ] -[[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.12", - "pin-project-lite", -] - [[package]] name = "http-body" version = "1.0.1" @@ -1425,7 +1412,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.2.0", + "http", ] [[package]] @@ -1436,8 +1423,8 @@ checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" dependencies = [ "bytes", "futures-util", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "pin-project-lite", ] @@ -1451,10 +1438,10 @@ dependencies = [ "bytesize", "claims", "dictionary", - "http 1.2.0", + "http", "http-backend", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "nanoid", "reactor", @@ -1491,28 +1478,6 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "tokio", - "tower-service", - "tracing", - "want", -] - [[package]] name = "hyper" version = "1.6.0" @@ -1523,8 +1488,8 @@ dependencies = [ "futures-channel", "futures-util", "h2", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "httparse", "httpdate", "itoa", @@ -1542,7 +1507,7 @@ checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" dependencies = [ "bytes", "http-body-util", - "hyper 1.6.0", + "hyper", "hyper-util", "native-tls", "tokio", @@ -1559,9 +1524,9 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "hyper 1.6.0", + "http", + "http-body", + "hyper", "pin-project-lite", "socket2", "tokio", @@ -2027,19 +1992,19 @@ dependencies = [ [[package]] name = "mock-http-connector" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cdff31167a91cebfab4eb65b63dc050583f5a24b09d825f570b415f4247caf6" +version = "0.4.0" +source = "git+https://github.com/nmoutschen/mock-http-connector.git?branch=hyper-1.0#d7749d1165d053966fe22992848c8760189f2cdd" dependencies = [ "colored", + "http-body-util", "httparse", - "hyper 0.14.32", + "hyper", + "hyper-util", "itertools 0.10.5", "paste", - "serde", - "serde_json", "thiserror", "tokio", + "tower", ] [[package]] @@ -2418,9 +2383,8 @@ dependencies = [ [[package]] name = "pulley-interpreter" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ - "cranelift-bitset", + "cranelift-bitset 0.116.1", "log", "sptr", "wasmtime-math", @@ -2644,7 +2608,7 @@ dependencies = [ "chrono", "claims", "clickhouse", - "http 1.2.0", + "http", "http-backend", "lazy_static", "moka", @@ -2657,7 +2621,7 @@ dependencies = [ "tracing", "wasi-common", "wasmtime", - "wasmtime-environ", + "wasmtime-environ 29.0.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", "wasmtime-wasi", "wasmtime-wasi-http", "wasmtime-wasi-nn", @@ -3321,6 +3285,22 @@ dependencies = [ "winnow", ] +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" version = "0.3.3" @@ -3567,7 +3547,7 @@ dependencies = [ "thiserror", "tracing", "wasmtime", - "wiggle", + "wiggle 29.0.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", "windows-sys 0.59.0", ] @@ -3726,7 +3706,6 @@ dependencies = [ [[package]] name = "wasmtime" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "addr2line", "anyhow", @@ -3768,7 +3747,7 @@ dependencies = [ "wasmtime-component-macro", "wasmtime-component-util", "wasmtime-cranelift", - "wasmtime-environ", + "wasmtime-environ 29.0.1", "wasmtime-fiber", "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", @@ -3783,7 +3762,6 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "cfg-if", ] @@ -3791,7 +3769,6 @@ dependencies = [ [[package]] name = "wasmtime-cache" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "base64", @@ -3810,7 +3787,6 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "proc-macro2", @@ -3824,18 +3800,16 @@ dependencies = [ [[package]] name = "wasmtime-component-util" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" [[package]] name = "wasmtime-cranelift" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "cfg-if", "cranelift-codegen", "cranelift-control", - "cranelift-entity", + "cranelift-entity 0.116.1", "cranelift-frontend", "cranelift-native", "gimli", @@ -3846,19 +3820,18 @@ dependencies = [ "target-lexicon", "thiserror", "wasmparser 0.221.3", - "wasmtime-environ", + "wasmtime-environ 29.0.1", "wasmtime-versioned-export-macros", ] [[package]] name = "wasmtime-environ" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "cpp_demangle", - "cranelift-bitset", - "cranelift-entity", + "cranelift-bitset 0.116.1", + "cranelift-entity 0.116.1", "gimli", "indexmap", "log", @@ -3877,9 +3850,28 @@ dependencies = [ ] [[package]] -name = "wasmtime-fiber" +name = "wasmtime-environ" version = "29.0.1" source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" +dependencies = [ + "anyhow", + "cranelift-bitset 0.116.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", + "cranelift-entity 0.116.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", + "gimli", + "indexmap", + "log", + "object", + "postcard", + "serde", + "serde_derive", + "smallvec", + "target-lexicon", + "wasmparser 0.221.3", +] + +[[package]] +name = "wasmtime-fiber" +version = "29.0.1" dependencies = [ "anyhow", "cc", @@ -3893,7 +3885,6 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "object", "rustix", @@ -3903,7 +3894,6 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "cfg-if", @@ -3914,7 +3904,6 @@ dependencies = [ [[package]] name = "wasmtime-math" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "libm", ] @@ -3922,12 +3911,10 @@ dependencies = [ [[package]] name = "wasmtime-slab" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" [[package]] name = "wasmtime-versioned-export-macros" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "proc-macro2", "quote", @@ -3937,7 +3924,6 @@ dependencies = [ [[package]] name = "wasmtime-wasi" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "async-trait", @@ -3960,7 +3946,7 @@ dependencies = [ "trait-variant", "url", "wasmtime", - "wiggle", + "wiggle 29.0.1", "windows-sys 0.59.0", ] @@ -3973,10 +3959,10 @@ dependencies = [ "async-trait", "bytes", "futures", - "http 1.2.0", - "http-body 1.0.1", + "http", + "http-body", "http-body-util", - "hyper 1.6.0", + "hyper", "rustls", "tokio", "tokio-rustls", @@ -4000,14 +3986,13 @@ dependencies = [ "tracing", "walkdir", "wasmtime", - "wiggle", + "wiggle 29.0.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", "windows 0.52.0", ] [[package]] name = "wasmtime-winch" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "cranelift-codegen", @@ -4016,14 +4001,13 @@ dependencies = [ "target-lexicon", "wasmparser 0.221.3", "wasmtime-cranelift", - "wasmtime-environ", + "wasmtime-environ 29.0.1", "winch-codegen", ] [[package]] name = "wasmtime-wit-bindgen" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "heck", @@ -4080,6 +4064,19 @@ dependencies = [ "rustls-pki-types", ] +[[package]] +name = "wiggle" +version = "29.0.1" +dependencies = [ + "anyhow", + "async-trait", + "bitflags 2.8.0", + "thiserror", + "tracing", + "wasmtime", + "wiggle-macro 29.0.1", +] + [[package]] name = "wiggle" version = "29.0.1" @@ -4091,7 +4088,20 @@ dependencies = [ "thiserror", "tracing", "wasmtime", - "wiggle-macro", + "wiggle-macro 29.0.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", +] + +[[package]] +name = "wiggle-generate" +version = "29.0.1" +dependencies = [ + "anyhow", + "heck", + "proc-macro2", + "quote", + "shellexpand", + "syn", + "witx", ] [[package]] @@ -4108,6 +4118,16 @@ dependencies = [ "witx", ] +[[package]] +name = "wiggle-macro" +version = "29.0.1" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wiggle-generate 29.0.1", +] + [[package]] name = "wiggle-macro" version = "29.0.1" @@ -4116,7 +4136,7 @@ dependencies = [ "proc-macro2", "quote", "syn", - "wiggle-generate", + "wiggle-generate 29.0.1 (git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend)", ] [[package]] @@ -4153,7 +4173,6 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" version = "29.0.1" -source = "git+https://github.com/G-Core/wasmtime.git?branch=wasi_nn_candle_backend#f79220e9b613bcd0381dd4aec26695686c170aaf" dependencies = [ "anyhow", "cranelift-codegen", @@ -4164,7 +4183,7 @@ dependencies = [ "thiserror", "wasmparser 0.221.3", "wasmtime-cranelift", - "wasmtime-environ", + "wasmtime-environ 29.0.1", ] [[package]] diff --git a/src/main.rs b/src/main.rs index e9adf16..c1a87f5 100644 --- a/src/main.rs +++ b/src/main.rs @@ -29,6 +29,7 @@ use smol_str::{SmolStr, ToSmolStr}; use std::collections::HashMap; use std::path::PathBuf; use std::time::Duration; +use tokio::signal; use wasmtime::component::Component; use wasmtime::{Engine, Module}; @@ -167,11 +168,16 @@ async fn main() -> anyhow::Result<()> { listen_fd: None, backoff: 64, }); + let mut terminate = signal::unix::signal(signal::unix::SignalKind::terminate())?; tokio::select! { res = http => { res? }, - _ = tokio::signal::ctrl_c() => { + _ = signal::ctrl_c() => { + #[cfg(target_family = "unix")] + shutdown_coordinator.shutdown().await + } + _ = terminate.recv() => { #[cfg(target_family = "unix")] shutdown_coordinator.shutdown().await }