diff --git a/.cargo/config.toml b/.cargo/config.toml index 3e20fb467db6..ce2d4046b7da 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,6 +1,11 @@ [target.aarch64-unknown-linux-gnu] linker = "aarch64-linux-gnu-gcc" +[env] +# Makes `--target wasm32-linera-chain` resolve to linera-service/wasm32-linera-chain.json +# anywhere in the repo. +RUST_TARGET_PATH = { value = "linera-service", relative = true } + [build] # We allow redundant explicit links because `cargo rdme` doesn't know how to resolve implicit intra-crate links. rustdocflags = ["-Arustdoc::redundant_explicit_links"] diff --git a/.github/workflows/dynamodb.yml b/.github/workflows/dynamodb.yml index 11b6b7ba2309..87182a26f443 100644 --- a/.github/workflows/dynamodb.yml +++ b/.github/workflows/dynamodb.yml @@ -42,14 +42,18 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build example applications run: | + unset RUSTUP_TOOLCHAIN RUSTFLAGS cd examples - cargo build --locked --release --target wasm32-unknown-unknown + cargo build --locked --release --target wasm32-linera-chain - name: Build run: | cargo build --locked --features dynamodb diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 281b648f61df..555611382639 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -66,6 +66,9 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - name: Install Protoc uses: arduino/setup-protoc@v3 with: @@ -233,6 +236,9 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - name: Install Protoc uses: arduino/setup-protoc@v3 with: @@ -279,6 +285,11 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + override: false + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - name: Install Protoc uses: arduino/setup-protoc@v3 with: @@ -303,6 +314,11 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + override: false + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - uses: foundry-rs/foundry-toolchain@v1.4.0 - name: Ensure Solc Directory Exists run: mkdir -p /home/runner/.solc @@ -365,14 +381,18 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build example applications run: | + unset RUSTUP_TOOLCHAIN RUSTFLAGS cd examples - cargo build --locked --release --target wasm32-unknown-unknown + cargo build --locked --release --target wasm32-linera-chain - name: Run the storage-service instance run: | cargo run --release -p linera-storage-service -- memory --endpoint $LINERA_STORAGE_SERVICE & @@ -556,7 +576,7 @@ jobs: needs: changed-files if: needs.changed-files.outputs.should-run == 'true' runs-on: linera-io-self-hosted-ci - timeout-minutes: 20 + timeout-minutes: 40 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/scylladb.yml b/.github/workflows/scylladb.yml index a359092d1184..f6558e0a1365 100644 --- a/.github/workflows/scylladb.yml +++ b/.github/workflows/scylladb.yml @@ -44,14 +44,18 @@ jobs: steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 + - name: Install nightly toolchain for wasm builds + run: | + rustup toolchain install $(sed -n 's/^channel = "\(.*\)"/\1/p' toolchains/nightly/rust-toolchain.toml) --component rust-src - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build example applications run: | + unset RUSTUP_TOOLCHAIN RUSTFLAGS cd examples - cargo build --locked --release --target wasm32-unknown-unknown + cargo build --locked --release --target wasm32-linera-chain - name: Build run: | cargo build --locked --features scylladb diff --git a/Cargo.lock b/Cargo.lock index c2dd7d558799..87e164194409 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6241,8 +6241,7 @@ dependencies = [ [[package]] name = "linera-wasm-instrument" version = "0.4.0-linera.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b01177f7f9e3404738607912cfe9887f0f717a8dc45adff03adc9f34f5b22e" +source = "git+https://github.com/linera-io/wasm-instrument?branch=bulk-memory-support#c29d43d43e5b4340c274320ac76bac3f4fe6dc45" dependencies = [ "linera-parity-wasm", ] @@ -6250,8 +6249,7 @@ dependencies = [ [[package]] name = "linera-wasmer" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6652182476826343f0dd1e76a184ad34bcee57650a9c00c77574b993dd30529" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "bytes", "cfg-if", @@ -6281,8 +6279,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4781ce9fc4a892c9a9727f51ec92d19e1c5b54259da21573671aa49211ae80f" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "bytes", @@ -6312,8 +6309,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-cranelift" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8056c8bff8e1b5cafd21aac59b9009e93b30f35b7baab5592a6f4c7db120b490" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "cranelift-codegen 0.91.1", "cranelift-entity 0.91.1", @@ -6331,8 +6327,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-singlepass" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3635a86dd98e2c2fd6dd603054f40b8e379f84365a2238cc177d47547a83eebc" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "byteorder", "dynasm", @@ -6350,8 +6345,7 @@ dependencies = [ [[package]] name = "linera-wasmer-vm" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27d020717572fdb6222324ec46b10eeb49f6f4a120ee63cf7145f4392f12fd8" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "cc", @@ -6369,6 +6363,7 @@ dependencies = [ "memoffset", "more-asserts", "region", + "rustversion", "scopeguard", "serde", "thiserror 1.0.69", diff --git a/Cargo.toml b/Cargo.toml index bc1f7a436332..68486a8f8b0c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -222,9 +222,7 @@ revm-state = { version = "4.0.1", default-features = false, features = [ "serde", ] } rocksdb = "0.21.0" -# 0.8.2 doesn't build with Rust 1.87. Remove `=` once -# https://github.com/linera-io/linera-protocol/issues/4742 is resolved. -ruzstd = "=0.8.1" +ruzstd = "0.8" scylla = "~1.1.0" semver = "1.0.22" serde = { version = "1.0.197", features = ["derive"] } @@ -286,9 +284,9 @@ url = "2.4" wasm-bindgen = "0.2.100" wasm-bindgen-futures = "=0.4.50" wasm-bindgen-test = "0.3.42" -wasm-instrument = { package = "linera-wasm-instrument", version = "0.4.0-linera.1" } -wasmer = { package = "linera-wasmer", version = "4.4.0-linera.7", default-features = false } -wasmer-compiler-singlepass = { package = "linera-wasmer-compiler-singlepass", version = "4.4.0-linera.7", default-features = false, features = [ +wasm-instrument = { package = "linera-wasm-instrument", git = "https://github.com/linera-io/wasm-instrument", branch = "bulk-memory-support" } +wasmer = { package = "linera-wasmer", git = "https://github.com/linera-io/wasmer", branch = "fix-rust-probestack", default-features = false } +wasmer-compiler-singlepass = { package = "linera-wasmer-compiler-singlepass", git = "https://github.com/linera-io/wasmer", branch = "fix-rust-probestack", default-features = false, features = [ "std", "unwind", "avx", diff --git a/examples/.cargo/config.toml b/examples/.cargo/config.toml new file mode 100644 index 000000000000..75ebd07e9df7 --- /dev/null +++ b/examples/.cargo/config.toml @@ -0,0 +1,11 @@ +[env] +# Makes `--target wasm32-linera-chain` resolve to linera-service/wasm32-linera-chain.json +RUST_TARGET_PATH = { value = "../linera-service", relative = true } + +[build] +# Required for rustc to accept the custom wasm32-linera-chain target spec. +rustflags = ["-Zunstable-options"] + +[unstable] +build-std = ["std", "panic_abort"] +json-target-spec = true diff --git a/examples/Cargo.lock b/examples/Cargo.lock index 73babac2d288..512bc3c4422f 100644 --- a/examples/Cargo.lock +++ b/examples/Cargo.lock @@ -3050,6 +3050,7 @@ dependencies = [ "candle-transformers", "fungible", "getrandom 0.2.15", + "half", "insta", "linera-sdk", "log", @@ -4245,8 +4246,7 @@ dependencies = [ [[package]] name = "linera-wasm-instrument" version = "0.4.0-linera.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b01177f7f9e3404738607912cfe9887f0f717a8dc45adff03adc9f34f5b22e" +source = "git+https://github.com/linera-io/wasm-instrument?branch=bulk-memory-support#c29d43d43e5b4340c274320ac76bac3f4fe6dc45" dependencies = [ "linera-parity-wasm", ] @@ -4254,8 +4254,7 @@ dependencies = [ [[package]] name = "linera-wasmer" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6652182476826343f0dd1e76a184ad34bcee57650a9c00c77574b993dd30529" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "bytes", "cfg-if", @@ -4284,8 +4283,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4781ce9fc4a892c9a9727f51ec92d19e1c5b54259da21573671aa49211ae80f" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "bytes", @@ -4315,8 +4313,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-cranelift" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8056c8bff8e1b5cafd21aac59b9009e93b30f35b7baab5592a6f4c7db120b490" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -4334,8 +4331,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-singlepass" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3635a86dd98e2c2fd6dd603054f40b8e379f84365a2238cc177d47547a83eebc" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "byteorder", "dynasm", @@ -4353,8 +4349,7 @@ dependencies = [ [[package]] name = "linera-wasmer-vm" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27d020717572fdb6222324ec46b10eeb49f6f4a120ee63cf7145f4392f12fd8" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "cc", @@ -4372,6 +4367,7 @@ dependencies = [ "memoffset", "more-asserts", "region", + "rustversion", "scopeguard", "serde", "thiserror 1.0.65", @@ -4431,6 +4427,7 @@ dependencies = [ "candle-core", "candle-transformers", "getrandom 0.2.15", + "half", "insta", "linera-sdk", "log", diff --git a/examples/Cargo.toml b/examples/Cargo.toml index 9597ec1317f1..edfb37cb09c7 100644 --- a/examples/Cargo.toml +++ b/examples/Cargo.toml @@ -41,6 +41,11 @@ futures-util = "0.3.26" getrandom = { version = "0.2.12", default-features = false, features = [ "custom", ] } +half = { version = ">=2.3.1, <2.6", features = [ + "rand_distr", + "num-traits", + "use-intrinsics", +] } hex = "0.4.3" insta = { version = "1.36.1", features = ["yaml"] } linera-sdk = { path = "../linera-sdk" } diff --git a/examples/amm/README.md b/examples/amm/README.md index 4c431108b4a6..36b479a9aff1 100644 --- a/examples/amm/README.md +++ b/examples/amm/README.md @@ -79,10 +79,10 @@ OWNER_2="${INFO_2[1]}" Now we have to publish and create the fungible applications. The flag `--wait-for-outgoing-messages` waits until a quorum of validators has confirmed that all sent cross-chain messages have been delivered. ```bash -(cd examples/fungible && cargo build --release --target wasm32-unknown-unknown) +(cd examples/fungible && cargo build --release --target wasm32-linera-chain) FUN1_APP_ID=$(linera --wait-for-outgoing-messages \ - publish-and-create examples/target/wasm32-unknown-unknown/release/fungible_{contract,service}.wasm \ + publish-and-create examples/target/wasm32-linera-chain/release/fungible_{contract,service}.wasm \ --json-argument "{ \"accounts\": { \"$OWNER_AMM\": \"100.\" } }" \ @@ -90,16 +90,16 @@ FUN1_APP_ID=$(linera --wait-for-outgoing-messages \ ) FUN2_APP_ID=$(linera --wait-for-outgoing-messages \ - publish-and-create examples/target/wasm32-unknown-unknown/release/fungible_{contract,service}.wasm \ + publish-and-create examples/target/wasm32-linera-chain/release/fungible_{contract,service}.wasm \ --json-argument "{ \"accounts\": { \"$OWNER_AMM\": \"100.\" } }" \ --json-parameters "{ \"ticker_symbol\": \"FUN2\" }" \ ) -(cd examples/amm && cargo build --release --target wasm32-unknown-unknown) +(cd examples/amm && cargo build --release --target wasm32-linera-chain) AMM_APPLICATION_ID=$(linera --wait-for-outgoing-messages \ - publish-and-create examples/target/wasm32-unknown-unknown/release/amm_{contract,service}.wasm \ + publish-and-create examples/target/wasm32-linera-chain/release/amm_{contract,service}.wasm \ --json-parameters "{\"tokens\":["\"$FUN1_APP_ID\"","\"$FUN2_APP_ID\""]}" \ --required-application-ids $FUN1_APP_ID $FUN2_APP_ID) ``` diff --git a/examples/counter/README.md b/examples/counter/README.md index 6b86458e6cd7..a82641841421 100644 --- a/examples/counter/README.md +++ b/examples/counter/README.md @@ -61,10 +61,10 @@ Now, compile the `counter` application WebAssembly binaries, publish and create ```bash cd examples/counter -cargo build --release --target wasm32-unknown-unknown +cargo build --release --target wasm32-linera-chain LINERA_APPLICATION_ID=$(linera publish-and-create \ - ../target/wasm32-unknown-unknown/release/counter_{contract,service}.wasm \ + ../target/wasm32-linera-chain/release/counter_{contract,service}.wasm \ --json-argument "1") ``` diff --git a/examples/fungible/README.md b/examples/fungible/README.md index c57ae270a60a..959d4abad4dc 100644 --- a/examples/fungible/README.md +++ b/examples/fungible/README.md @@ -81,10 +81,10 @@ Now, compile the `fungible` application WebAssembly binaries, and publish them a bytecode: ```bash -(cd examples/fungible && cargo build --release --target wasm32-unknown-unknown) +(cd examples/fungible && cargo build --release --target wasm32-linera-chain) MODULE_ID=$(linera publish-module \ - examples/target/wasm32-unknown-unknown/release/fungible_{contract,service}.wasm) + examples/target/wasm32-linera-chain/release/fungible_{contract,service}.wasm) ``` Here, we stored the new module ID in a variable `MODULE_ID` to be reused it later. diff --git a/examples/gen-nft/Cargo.toml b/examples/gen-nft/Cargo.toml index ef539ed3c7c3..c3f125754890 100644 --- a/examples/gen-nft/Cargo.toml +++ b/examples/gen-nft/Cargo.toml @@ -15,6 +15,7 @@ candle-core.workspace = true candle-transformers.workspace = true fungible.workspace = true getrandom.workspace = true +half.workspace = true linera-sdk.workspace = true log.workspace = true rand.workspace = true @@ -33,6 +34,9 @@ non-fungible = { workspace = true, features = ["test"] } serde-reflection.workspace = true tokio.workspace = true +[package.metadata.cargo-machete] +ignored = ["half"] + [[bin]] name = "gen_nft_contract" path = "src/contract.rs" diff --git a/examples/gen-nft/README.md b/examples/gen-nft/README.md index 7dc9a5e1944f..e2b4adeef5a6 100644 --- a/examples/gen-nft/README.md +++ b/examples/gen-nft/README.md @@ -75,10 +75,10 @@ OWNER_2="${INFO_2[1]}" Next, compile the `non-fungible` application WebAssembly binaries, and publish them as an application module: ```bash -(cd examples/gen-nft && cargo build --release --target wasm32-unknown-unknown) +(cd examples/gen-nft && cargo build --release --target wasm32-linera-chain) MODULE_ID=$(linera publish-module \ - examples/target/wasm32-unknown-unknown/release/gen_nft_{contract,service}.wasm) + examples/target/wasm32-linera-chain/release/gen_nft_{contract,service}.wasm) ``` Here, we stored the new module ID in a variable `MODULE_ID` to be reused later. diff --git a/examples/how-to/perform-http-requests/README.md b/examples/how-to/perform-http-requests/README.md index 4aa841680a2d..99181a441144 100644 --- a/examples/how-to/perform-http-requests/README.md +++ b/examples/how-to/perform-http-requests/README.md @@ -109,10 +109,10 @@ CHAIN="${INFO[0]}" Now, compile the application WebAssembly binaries, publish and create an application instance. ```bash -(cd examples/how-to/perform-http-requests && cargo build --release --target wasm32-unknown-unknown) +(cd examples/how-to/perform-http-requests && cargo build --release --target wasm32-linera-chain) APPLICATION_ID=$(linera publish-and-create \ - examples/target/wasm32-unknown-unknown/release/how_to_perform_http_requests_{contract,service}.wasm \ + examples/target/wasm32-linera-chain/release/how_to_perform_http_requests_{contract,service}.wasm \ --json-parameters "\"http://localhost:$HTTP_PORT\"") ``` diff --git a/examples/llm/Cargo.toml b/examples/llm/Cargo.toml index 00989c48b9ae..f954887f1700 100644 --- a/examples/llm/Cargo.toml +++ b/examples/llm/Cargo.toml @@ -8,6 +8,7 @@ async-graphql.workspace = true candle-core.workspace = true candle-transformers.workspace = true getrandom.workspace = true +half.workspace = true linera-sdk.workspace = true log.workspace = true rand.workspace = true @@ -23,6 +24,9 @@ linera-sdk = { workspace = true, features = ["test", "wasmer"] } serde-reflection.workspace = true tokio = { workspace = true, features = ["rt", "sync"] } +[package.metadata.cargo-machete] +ignored = ["half"] + [[bin]] name = "llm_contract" path = "src/contract.rs" diff --git a/examples/llm/src/service.rs b/examples/llm/src/service.rs index ec1c131a2373..c95faa28af85 100644 --- a/examples/llm/src/service.rs +++ b/examples/llm/src/service.rs @@ -94,7 +94,7 @@ impl Service for LlmService { )); let raw_weights = response.body; assert_eq!( - Sha3_256::digest(&raw_weights).as_slice(), + &Sha3_256::digest(&raw_weights)[..], WEIGHTS_HASH, "Incorrect model was fetched" ); @@ -106,7 +106,7 @@ impl Service for LlmService { )); let tokenizer_bytes = response.body; assert_eq!( - Sha3_256::digest(&tokenizer_bytes).as_slice(), + &Sha3_256::digest(&tokenizer_bytes)[..], TOKENIZER_HASH, "Incorrect tokenizer was fetched" ); diff --git a/examples/native-fungible/README.md b/examples/native-fungible/README.md index 36cc3af03a26..a6cd536461fb 100644 --- a/examples/native-fungible/README.md +++ b/examples/native-fungible/README.md @@ -61,10 +61,10 @@ module: ```bash cd examples/native-fungible -cargo build --release --target wasm32-unknown-unknown +cargo build --release --target wasm32-linera-chain MODULE_ID="$(linera publish-module \ - ../target/wasm32-unknown-unknown/release/native_fungible_{contract,service}.wasm)" + ../target/wasm32-linera-chain/release/native_fungible_{contract,service}.wasm)" ``` Here, we stored the new module ID in a variable `MODULE_ID` to be reused it later. diff --git a/examples/non-fungible/README.md b/examples/non-fungible/README.md index 71426d192ba5..4dc5cae0bcc4 100644 --- a/examples/non-fungible/README.md +++ b/examples/non-fungible/README.md @@ -73,10 +73,10 @@ OWNER_2="${INFO_2[1]}" ``` ```bash -(cd examples/non-fungible && cargo build --release --target wasm32-unknown-unknown) +(cd examples/non-fungible && cargo build --release --target wasm32-linera-chain) MODULE_ID=$(linera publish-module \ - examples/target/wasm32-unknown-unknown/release/non_fungible_{contract,service}.wasm) + examples/target/wasm32-linera-chain/release/non_fungible_{contract,service}.wasm) ``` Here, we stored the new module ID in a variable `MODULE_ID` to be reused later. diff --git a/examples/rfq/README.md b/examples/rfq/README.md index 87e52ba969e3..dcdf3e76cd45 100644 --- a/examples/rfq/README.md +++ b/examples/rfq/README.md @@ -95,7 +95,7 @@ Note that `linera --with-wallet 1` is equivalent to `linera --wallet "$LINERA_WA Now, we can publish the fungible module and create the fungible applications. ```bash -(cd examples/fungible && cargo build --release --target wasm32-unknown-unknown) +(cd examples/fungible && cargo build --release --target wasm32-linera-chain) APP_ID_0=$(linera --with-wallet 1 project publish-and-create \ examples/fungible \ diff --git a/examples/rfq/src/state.rs b/examples/rfq/src/state.rs index 0079e3f74a23..e6296586d4de 100644 --- a/examples/rfq/src/state.rs +++ b/examples/rfq/src/state.rs @@ -73,6 +73,7 @@ pub struct RequestData { state: RequestState, } +#[allow(dead_code)] #[derive(Clone, Debug, Serialize, Deserialize, SimpleObject)] pub struct TempChainTokenHolder { pub account_owner: AccountOwner, diff --git a/examples/rust-toolchain.toml b/examples/rust-toolchain.toml index 43fe0ada68b3..880fe40f3147 120000 --- a/examples/rust-toolchain.toml +++ b/examples/rust-toolchain.toml @@ -1 +1 @@ -../rust-toolchain.toml \ No newline at end of file +../toolchains/nightly/rust-toolchain.toml \ No newline at end of file diff --git a/linera-bridge/src/proof/mod.rs b/linera-bridge/src/proof/mod.rs index 394f7385be92..1628241b1073 100644 --- a/linera-bridge/src/proof/mod.rs +++ b/linera-bridge/src/proof/mod.rs @@ -455,7 +455,7 @@ pub fn build_receipt_proof( .iter() .map(|(idx, rlp)| (receipt_trie_key(*idx), rlp.as_slice())) .collect(); - entries.sort_by(|a, b| a.0.cmp(&b.0)); + entries.sort_by_key(|a| a.0); let target_key = receipt_trie_key(target_tx_index); let retainer = ProofRetainer::new(vec![target_key]); diff --git a/linera-bridge/tests/e2e/.cargo/config.toml b/linera-bridge/tests/e2e/.cargo/config.toml deleted file mode 100644 index 84a216c77e5e..000000000000 --- a/linera-bridge/tests/e2e/.cargo/config.toml +++ /dev/null @@ -1,5 +0,0 @@ -[resolver] -# Prefer crate versions compatible with our rust-version (1.88). -# This prevents alloy sub-crates from resolving to 1.7+ (MSRV 1.91), -# which would pull in Rust 1.91 and break linera-wasmer-vm's probestack. -incompatible-rust-versions = "fallback" diff --git a/linera-bridge/tests/e2e/Cargo.lock b/linera-bridge/tests/e2e/Cargo.lock index 82e155eb0d83..1aad7274f7f1 100644 --- a/linera-bridge/tests/e2e/Cargo.lock +++ b/linera-bridge/tests/e2e/Cargo.lock @@ -4022,8 +4022,7 @@ dependencies = [ [[package]] name = "linera-wasm-instrument" version = "0.4.0-linera.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b01177f7f9e3404738607912cfe9887f0f717a8dc45adff03adc9f34f5b22e" +source = "git+https://github.com/linera-io/wasm-instrument?branch=bulk-memory-support#c29d43d43e5b4340c274320ac76bac3f4fe6dc45" dependencies = [ "linera-parity-wasm", ] @@ -4031,8 +4030,7 @@ dependencies = [ [[package]] name = "linera-wasmer" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6652182476826343f0dd1e76a184ad34bcee57650a9c00c77574b993dd30529" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "bytes", "cfg-if", @@ -4061,8 +4059,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4781ce9fc4a892c9a9727f51ec92d19e1c5b54259da21573671aa49211ae80f" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "bytes", @@ -4092,8 +4089,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-cranelift" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8056c8bff8e1b5cafd21aac59b9009e93b30f35b7baab5592a6f4c7db120b490" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -4111,8 +4107,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-singlepass" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3635a86dd98e2c2fd6dd603054f40b8e379f84365a2238cc177d47547a83eebc" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "byteorder", "dynasm", @@ -4130,8 +4125,7 @@ dependencies = [ [[package]] name = "linera-wasmer-vm" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27d020717572fdb6222324ec46b10eeb49f6f4a120ee63cf7145f4392f12fd8" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "cc", @@ -4149,6 +4143,7 @@ dependencies = [ "memoffset", "more-asserts", "region", + "rustversion", "scopeguard", "serde", "thiserror 1.0.69", diff --git a/linera-bridge/tests/e2e/Cargo.toml b/linera-bridge/tests/e2e/Cargo.toml index a2fa09ca6df6..f04235b30317 100644 --- a/linera-bridge/tests/e2e/Cargo.toml +++ b/linera-bridge/tests/e2e/Cargo.toml @@ -2,7 +2,6 @@ name = "linera-bridge-e2e" version = "0.0.1" edition = "2021" -rust-version = "1.88" publish = false # Separate workspace — avoids bollard version conflicts between @@ -11,11 +10,7 @@ publish = false [workspace] [dependencies] -# Capped below 1.7: alloy >=1.7 requires Rust 1.91+, which removed -# __rust_probestack and breaks the linera wasmer fork (v4.4.0-linera.7). -# Remove this cap once the wasmer fork is updated with the probestack fix -# from upstream (wasmerio/wasmer#5690). -alloy = { version = ">=1.0.42, <1.7", default-features = false, features = [ +alloy = { version = "1.0.42", default-features = false, features = [ "rpc-types-eth", "json-rpc", "contract", diff --git a/linera-bridge/tests/e2e/rust-toolchain.toml b/linera-bridge/tests/e2e/rust-toolchain.toml deleted file mode 100644 index 55b200d5b290..000000000000 --- a/linera-bridge/tests/e2e/rust-toolchain.toml +++ /dev/null @@ -1,3 +0,0 @@ -[toolchain] -channel = "1.88.0" -profile = "minimal" diff --git a/linera-chain/src/manager.rs b/linera-chain/src/manager.rs index a20bccb88b55..3b0ff0a61b7f 100644 --- a/linera-chain/src/manager.rs +++ b/linera-chain/src/manager.rs @@ -454,7 +454,7 @@ where key_pair: Option<&ValidatorSecretKey>, local_time: Timestamp, blobs: BTreeMap, - ) -> Result, ChainError> { + ) -> Result>, ChainError> { let round = proposal.content.round; match &proposal.original_proposal { diff --git a/linera-core/src/client/mod.rs b/linera-core/src/client/mod.rs index 25cc6ed5002d..414a8cb38a0c 100644 --- a/linera-core/src/client/mod.rs +++ b/linera-core/src/client/mod.rs @@ -741,7 +741,7 @@ impl Client { .await { Err(LocalNodeError::BlobsNotFound(blob_ids)) => { - self.download_blobs(&[remote_node.clone()], &blob_ids) + self.download_blobs(std::slice::from_ref(remote_node), &blob_ids) .await?; } x => { @@ -753,7 +753,7 @@ impl Client { info = Some( match self.handle_certificate(certificate.clone()).await { Err(LocalNodeError::BlobsNotFound(blob_ids)) => { - self.download_blobs(&[remote_node.clone()], &blob_ids) + self.download_blobs(std::slice::from_ref(remote_node), &blob_ids) .await?; self.handle_certificate(certificate).await? } @@ -1704,7 +1704,7 @@ impl Client { if let LocalNodeError::BlobsNotFound(blob_ids) = &err { self.update_local_node_with_blobs_from( blob_ids.clone(), - &[remote_node.clone()], + std::slice::from_ref(remote_node), ) .await?; // We found the missing blobs: retry. diff --git a/linera-core/src/unit_tests/wasm_worker_tests.rs b/linera-core/src/unit_tests/wasm_worker_tests.rs index de3925f473cb..1a7d70db4c1d 100644 --- a/linera-core/src/unit_tests/wasm_worker_tests.rs +++ b/linera-core/src/unit_tests/wasm_worker_tests.rs @@ -230,7 +230,7 @@ where let create_certificate = env.make_certificate(create_block_proposal); storage - .write_blobs(&[application_description_blob.clone()]) + .write_blobs(std::slice::from_ref(&application_description_blob)) .await?; creator_state .context() diff --git a/linera-core/src/worker.rs b/linera-core/src/worker.rs index 7e2feab7fa7e..1d82308f7c37 100644 --- a/linera-core/src/worker.rs +++ b/linera-core/src/worker.rs @@ -38,7 +38,7 @@ use linera_views::{context::InactiveContext, ViewError}; use serde::{Deserialize, Serialize}; use thiserror::Error; use tokio::sync::{mpsc, oneshot, OwnedRwLockReadGuard}; -use tracing::{error, instrument, trace, warn}; +use tracing::{instrument, trace, warn}; /// Re-export of [`EventSubscriptionsResult`] for use by other crate modules. pub(crate) use crate::chain_worker::{ diff --git a/linera-ethereum/tests/ethereum_test.rs b/linera-ethereum/tests/ethereum_test.rs index 48e6815865e2..fedf4ad07e9c 100644 --- a/linera-ethereum/tests/ethereum_test.rs +++ b/linera-ethereum/tests/ethereum_test.rs @@ -68,11 +68,11 @@ async fn test_event_numerics() -> anyhow::Result<()> { ], block_number: 1, }; - assert_eq!(*events, [target_event.clone()]); + assert_eq!(events, std::slice::from_ref(&target_event)); let events = ethereum_client_simp .read_events(&contract_address, event_name_expanded, from_block, to_block) .await?; - assert_eq!(*events, [target_event]); + assert_eq!(events, std::slice::from_ref(&target_event)); Ok(()) } @@ -110,12 +110,12 @@ async fn test_simple_token_events() -> anyhow::Result<()> { ], block_number: 2, }; - assert_eq!(*events, [target_event.clone()]); + assert_eq!(events, std::slice::from_ref(&target_event)); // Using the simplified client let events = ethereum_client_simp .read_events(&contract_address, event_name_expanded, from_block, to_block) .await?; - assert_eq!(*events, [target_event]); + assert_eq!(events, std::slice::from_ref(&target_event)); Ok(()) } diff --git a/linera-execution/Cargo.toml b/linera-execution/Cargo.toml index 12d10b1d3cc5..543dd29b4198 100644 --- a/linera-execution/Cargo.toml +++ b/linera-execution/Cargo.toml @@ -99,7 +99,7 @@ tempfile = { workspace = true, optional = true } thiserror.workspace = true tracing = { workspace = true, features = ["log"] } url.workspace = true -wasm-instrument = { workspace = true, features = ["sign_ext"] } +wasm-instrument = { workspace = true, features = ["sign_ext", "bulk"] } wasmtime = { workspace = true, optional = true } web-thread-pool.workspace = true web-thread-select.workspace = true diff --git a/linera-execution/tests/fixtures/counter_contract.wasm b/linera-execution/tests/fixtures/counter_contract.wasm index 9ab64a34dd41..5dce5fa6db99 100755 Binary files a/linera-execution/tests/fixtures/counter_contract.wasm and b/linera-execution/tests/fixtures/counter_contract.wasm differ diff --git a/linera-execution/tests/fixtures/counter_service.wasm b/linera-execution/tests/fixtures/counter_service.wasm index bb9f30d65e78..58d39fdc0db9 100755 Binary files a/linera-execution/tests/fixtures/counter_service.wasm and b/linera-execution/tests/fixtures/counter_service.wasm differ diff --git a/linera-execution/tests/wasm.rs b/linera-execution/tests/wasm.rs index d170e2c16304..63a3d4106f13 100644 --- a/linera-execution/tests/wasm.rs +++ b/linera-execution/tests/wasm.rs @@ -23,8 +23,8 @@ use test_case::test_case; /// called correctly and consume the expected amount of fuel. /// /// To update the bytecode files, run `linera-execution/update_wasm_fixtures.sh`. -#[cfg_attr(with_wasmer, test_case(WasmRuntime::Wasmer, 71_229; "wasmer"))] -#[cfg_attr(with_wasmtime, test_case(WasmRuntime::Wasmtime, 71_229; "wasmtime"))] +#[cfg_attr(with_wasmer, test_case(WasmRuntime::Wasmer, 32_142; "wasmer"))] +#[cfg_attr(with_wasmtime, test_case(WasmRuntime::Wasmtime, 32_142; "wasmtime"))] #[test_log::test(tokio::test(flavor = "multi_thread"))] async fn test_fuel_for_counter_wasm_application( wasm_runtime: WasmRuntime, diff --git a/linera-indexer/lib/src/lib.rs b/linera-indexer/lib/src/lib.rs index 421975aec25d..f84b78d80596 100644 --- a/linera-indexer/lib/src/lib.rs +++ b/linera-indexer/lib/src/lib.rs @@ -1,6 +1,8 @@ // Copyright (c) Zefchain Labs, Inc. // SPDX-License-Identifier: Apache-2.0 +#![recursion_limit = "256"] + //! This module defines the linera-indexer library including: //! - the indexer connection to the node service (service.rs) //! - the block processing (indexer.rs) diff --git a/linera-rpc/src/propagation.rs b/linera-rpc/src/propagation.rs index b3ce0e03dabc..7d29d9eb878d 100644 --- a/linera-rpc/src/propagation.rs +++ b/linera-rpc/src/propagation.rs @@ -155,10 +155,7 @@ pub fn get_context_with_traffic_type() -> Context { let cx = Context::current(); - if std::env::var(TRAFFIC_TYPE_ENV_VAR) - .map(|v| v == TRAFFIC_TYPE_SYNTHETIC) - .unwrap_or(false) - { + if std::env::var(TRAFFIC_TYPE_ENV_VAR).is_ok_and(|v| v == TRAFFIC_TYPE_SYNTHETIC) { cx.with_baggage(vec![KeyValue::new( Key::new(TRAFFIC_TYPE_KEY), TRAFFIC_TYPE_SYNTHETIC, diff --git a/linera-rpc/src/simple/server.rs b/linera-rpc/src/simple/server.rs index 2742cef86487..d119d5affeb6 100644 --- a/linera-rpc/src/simple/server.rs +++ b/linera-rpc/src/simple/server.rs @@ -387,7 +387,7 @@ where }; self.server.packets_processed += 1; - if self.server.packets_processed % 5000 == 0 { + if self.server.packets_processed.is_multiple_of(5000) { debug!( "[{}] {}:{} (shard {}) has processed {} packets", self.server.state.nickname(), diff --git a/linera-rpc/src/simple/transport.rs b/linera-rpc/src/simple/transport.rs index 54205ef73356..d6f2b7d60cba 100644 --- a/linera-rpc/src/simple/transport.rs +++ b/linera-rpc/src/simple/transport.rs @@ -383,7 +383,7 @@ where ) -> Result<(), std::io::Error> { let listener = TcpListener::bind(address).await?; - let mut accept_stream = stream::try_unfold(listener, |listener| async move { + let accept_stream = stream::try_unfold(listener, |listener| async move { let (socket, _) = listener.accept().await?; Ok::<_, io::Error>(Some((socket, listener))) }); diff --git a/linera-sdk/src/util.rs b/linera-sdk/src/util.rs index f982fc9972f1..3b7238011ecc 100644 --- a/linera-sdk/src/util.rs +++ b/linera-sdk/src/util.rs @@ -58,7 +58,7 @@ where { type Output = AnyFuture::Output; - fn blocking_wait(mut self) -> Self::Output { + fn blocking_wait(self) -> Self::Output { let waker = task::noop_waker(); let mut task_context = Context::from_waker(&waker); let mut future = pin!(self); diff --git a/linera-sdk/tests/fixtures/Cargo.lock b/linera-sdk/tests/fixtures/Cargo.lock index 7db1d4ed3d8e..ea5734047e74 100644 --- a/linera-sdk/tests/fixtures/Cargo.lock +++ b/linera-sdk/tests/fixtures/Cargo.lock @@ -33,16 +33,16 @@ version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" dependencies = [ "memchr", ] @@ -65,7 +65,7 @@ checksum = "fe233a377643e0fc1a56421d7c90acdec45c291b30345eb9f08e8d0ddce5a4ab" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -83,9 +83,9 @@ dependencies = [ "bytes", "cfg-if", "const-hex", - "derive_more 2.0.1", - "hashbrown 0.16.0", - "indexmap 2.11.4", + "derive_more 2.1.1", + "hashbrown 0.16.1", + "indexmap 2.13.0", "itoa", "k256", "paste", @@ -128,29 +128,29 @@ dependencies = [ [[package]] name = "anstyle-query" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e231f6134f61b71076a3eab506c379d4f36122f2af15a9ff04415ea4c3339e2" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anstyle-wincon" -version = "3.0.10" +version = "3.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e0633414522a32ffaac8ac6cc8f748e090c5717661fddeea04219e2344f5f2a" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "arrayvec" @@ -182,8 +182,8 @@ dependencies = [ "futures-timer", "futures-util", "handlebars", - "http 1.3.1", - "indexmap 2.11.4", + "http 1.4.0", + "indexmap 2.13.0", "mime", "multer", "num-traits", @@ -206,19 +206,19 @@ dependencies = [ "Inflector", "async-graphql-parser", "darling 0.20.11", - "proc-macro-crate 3.4.0", + "proc-macro-crate 3.5.0", "proc-macro2", "quote", "strum", - "syn 2.0.106", + "syn 2.0.117", "thiserror 1.0.69", ] [[package]] name = "async-graphql-parser" -version = "7.0.17" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b7607e59424a35dadbc085b0d513aa54ec28160ee640cf79ec3b634eba66d3" +checksum = "e64ef70f77a1c689111e52076da1cd18f91834bcb847de0a9171f83624b07fbf" dependencies = [ "async-graphql-value", "pest", @@ -228,21 +228,21 @@ dependencies = [ [[package]] name = "async-graphql-value" -version = "7.0.17" +version = "7.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34ecdaff7c9cffa3614a9f9999bf9ee4c3078fe3ce4d6a6e161736b56febf2de" +checksum = "3e3ef112905abea9dea592fc868a6873b10ebd3f983e83308f995d6284e9ba41" dependencies = [ "bytes", - "indexmap 2.11.4", + "indexmap 2.13.0", "serde", "serde_json", ] [[package]] name = "async-lock" -version = "3.4.1" +version = "3.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fd03604047cee9b6ce9de9f70c6cd540a0520c813cbd49bae61f33ab80ed1dc" +checksum = "290f7f2596bd5b78a9fec8088ccd89180d7f9f55b94b0576823bbbdc72ee8311" dependencies = [ "event-listener", "event-listener-strategy", @@ -268,7 +268,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -279,7 +279,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -296,18 +296,18 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" -version = "0.8.6" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18ed336352031311f4e0b4dd2ff392d4fbb370777c9d18d7fc9d7359f73871" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" dependencies = [ "axum-core", "bytes", "form_urlencoded", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", - "hyper 1.7.0", + "hyper 1.8.1", "hyper-util", "itoa", "matchit", @@ -329,13 +329,13 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.5.5" +version = "0.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59446ce19cd142f8833f856eb31f3eb097812d1479ab224f54d72428ca21ea22" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" dependencies = [ "bytes", "futures-core", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "http-body-util", "mime", @@ -403,9 +403,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.4" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "bitvec" @@ -430,9 +430,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytecheck" @@ -464,18 +464,18 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.10.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] [[package]] name = "camino" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "276a59bf2b2c967788139340c9f0c5b12d7fd6630315c15c217e559de85d2609" +checksum = "e629a66d692cb9ff1a1c664e41771b3dcaf961985a9774c0eb0bd1b51cf60a48" dependencies = [ "serde_core", ] @@ -515,9 +515,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.40" +version = "1.2.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1d05d92f4b1fd76aad469d46cdd858ca761576082cd37df81416691e50199fb" +checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" dependencies = [ "find-msvc-tools", "jobserver", @@ -539,9 +539,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "num-traits", "serde", @@ -549,9 +549,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.48" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2134bb3ea021b78629caa971416385309e0131b351b25e01dc16fb54e1b5fae" +checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" dependencies = [ "clap_builder", "clap_derive", @@ -559,9 +559,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.48" +version = "4.5.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2ba64afa3c0a6df7fa517765e31314e983f51dda798ffba27b988194fb65dc9" +checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" dependencies = [ "anstream", "anstyle", @@ -571,21 +571,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.47" +version = "4.5.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbfd7eae0b0f1a6e63d4b13c9c478de77c2eb546fba158ad50b4203dc24b9f9c" +checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" [[package]] name = "colorchoice" @@ -604,9 +604,9 @@ dependencies = [ [[package]] name = "const-hex" -version = "1.16.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6407bff74dea37e0fa3dc1c1c974e5d46405f0c987bf9997a0762adce71eda6" +checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" dependencies = [ "cfg-if", "cpufeatures", @@ -638,6 +638,15 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "core-foundation" version = "0.9.4" @@ -880,7 +889,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -892,7 +901,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "synstructure", ] @@ -927,7 +936,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -941,7 +950,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -952,7 +961,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -963,7 +972,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -990,7 +999,7 @@ dependencies = [ "deluxe-macros", "once_cell", "proc-macro2", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1003,7 +1012,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1018,7 +1027,7 @@ dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1034,9 +1043,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.4" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a41953f86f8a05768a6cda24def994fd2f424b04ec5c719cf89989779f199071" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -1063,11 +1072,11 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" dependencies = [ - "derive_more-impl 2.0.1", + "derive_more-impl 2.1.1", ] [[package]] @@ -1078,19 +1087,21 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "unicode-xid", ] [[package]] name = "derive_more-impl" -version = "2.0.1" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" dependencies = [ + "convert_case 0.10.0", "proc-macro2", "quote", - "syn 2.0.106", + "rustc_version", + "syn 2.0.117", "unicode-xid", ] @@ -1114,7 +1125,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1264,7 +1275,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1289,7 +1300,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.1", + "windows-sys 0.61.2", ] [[package]] @@ -1334,7 +1345,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", ] [[package]] @@ -1355,9 +1366,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" [[package]] name = "find-msvc-tools" -version = "0.1.3" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0399f9d26e5191ce32c498bebd31e7a3ceabc2745f0ac54af3f335126c3f24b3" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixedbitset" @@ -1433,7 +1444,7 @@ checksum = "a0b4095fc99e1d858e5b8c7125d2638372ec85aa0fe6c807105cf10b0265ca6c" dependencies = [ "frunk_proc_macro_helpers", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1445,7 +1456,7 @@ dependencies = [ "frunk_core", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1457,7 +1468,7 @@ dependencies = [ "frunk_core", "frunk_proc_macro_helpers", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -1477,9 +1488,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -1492,9 +1503,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -1502,15 +1513,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -1519,32 +1530,32 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-timer" @@ -1554,9 +1565,9 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -1566,7 +1577,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -1581,9 +1591,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.7" +version = "0.14.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2" dependencies = [ "serde", "typenum", @@ -1593,27 +1603,40 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.3.3" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "libc", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", - "r-efi", - "wasi 0.14.7+wasi-0.2.4", + "r-efi 6.0.0", + "wasip2", + "wasip3", ] [[package]] @@ -1662,7 +1685,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.11.4", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -1671,17 +1694,17 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.12" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3c0b69cfcb4e1b9f1bf2f53f95f766e4661169728ec61cd3fe5a0166f2d1386" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" dependencies = [ "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "http 1.3.1", - "indexmap 2.11.4", + "http 1.4.0", + "indexmap 2.13.0", "slab", "tokio", "tokio-util", @@ -1730,12 +1753,13 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ "foldhash 0.2.0", "serde", + "serde_core", ] [[package]] @@ -1787,12 +1811,11 @@ dependencies = [ [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -1814,7 +1837,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http 1.3.1", + "http 1.4.0", ] [[package]] @@ -1825,7 +1848,7 @@ checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ "bytes", "futures-core", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", "pin-project-lite", ] @@ -1868,16 +1891,16 @@ dependencies = [ [[package]] name = "hyper" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e" +checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" dependencies = [ "atomic-waker", "bytes", "futures-channel", "futures-core", - "h2 0.4.12", - "http 1.3.1", + "h2 0.4.13", + "http 1.4.0", "http-body 1.0.1", "httparse", "httpdate", @@ -1909,7 +1932,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" dependencies = [ - "hyper 1.7.0", + "hyper 1.8.1", "hyper-util", "pin-project-lite", "tokio", @@ -1918,20 +1941,19 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6995591a8f1380fcb4ba966a252a4b29188d51d2b89e3a252f5305be65aea8" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", - "http 1.3.1", + "http 1.4.0", "http-body 1.0.1", - "hyper 1.7.0", + "hyper 1.8.1", "libc", "pin-project-lite", - "socket2 0.6.0", + "socket2 0.6.3", "tokio", "tower-service", "tracing", @@ -1939,9 +1961,9 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" dependencies = [ "displaydoc", "potential_utf", @@ -1952,9 +1974,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" dependencies = [ "displaydoc", "litemap", @@ -1965,11 +1987,10 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" dependencies = [ - "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", @@ -1980,42 +2001,38 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" +checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" [[package]] name = "icu_properties" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" dependencies = [ - "displaydoc", "icu_collections", "icu_locale_core", "icu_properties_data", "icu_provider", - "potential_utf", "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.0.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" +checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.0.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" dependencies = [ "displaydoc", "icu_locale_core", - "stable_deref_trait", - "tinystr", "writeable", "yoke", "zerofrom", @@ -2025,9 +2042,9 @@ dependencies = [ [[package]] name = "id-arena" -version = "2.2.1" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "ident_case" @@ -2075,49 +2092,38 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.11.4" +version = "2.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.16.1", "serde", "serde_core", ] -[[package]] -name = "io-uring" -version = "0.7.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b" -dependencies = [ - "bitflags 2.9.4", - "cfg-if", - "libc", -] - [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "is-terminal" -version = "0.4.16" +version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "is_terminal_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" [[package]] name = "itertools" @@ -2130,9 +2136,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" [[package]] name = "jobserver" @@ -2140,15 +2146,15 @@ version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "libc", ] [[package]] name = "js-sys" -version = "0.3.81" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec48937a97411dcb524a265206ccd4c90bb711fca92b2792c407f268825b9305" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -2169,9 +2175,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -2188,17 +2194,23 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + [[package]] name = "libc" -version = "0.2.176" +version = "0.2.183" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58f929b4d672ea937a23a1ab494143d968337a5f47e56d0815df1e0890ddf174" +checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" [[package]] name = "libm" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "linera-base" @@ -2396,9 +2408,9 @@ dependencies = [ name = "linera-sdk-derive" version = "0.15.15" dependencies = [ - "convert_case", + "convert_case 0.6.0", "proc-macro2", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -2476,7 +2488,7 @@ dependencies = [ "async-lock", "bcs", "cfg_aliases", - "convert_case", + "convert_case 0.6.0", "derive_more 1.0.0", "futures", "generic-array", @@ -2509,14 +2521,13 @@ dependencies = [ "deluxe", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "linera-wasm-instrument" version = "0.4.0-linera.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80b01177f7f9e3404738607912cfe9887f0f717a8dc45adff03adc9f34f5b22e" +source = "git+https://github.com/linera-io/wasm-instrument?branch=bulk-memory-support#c29d43d43e5b4340c274320ac76bac3f4fe6dc45" dependencies = [ "linera-parity-wasm", ] @@ -2524,8 +2535,7 @@ dependencies = [ [[package]] name = "linera-wasmer" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6652182476826343f0dd1e76a184ad34bcee57650a9c00c77574b993dd30529" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "bytes", "cfg-if", @@ -2554,8 +2564,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4781ce9fc4a892c9a9727f51ec92d19e1c5b54259da21573671aa49211ae80f" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "bytes", @@ -2585,8 +2594,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-cranelift" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8056c8bff8e1b5cafd21aac59b9009e93b30f35b7baab5592a6f4c7db120b490" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -2604,8 +2612,7 @@ dependencies = [ [[package]] name = "linera-wasmer-compiler-singlepass" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3635a86dd98e2c2fd6dd603054f40b8e379f84365a2238cc177d47547a83eebc" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "byteorder", "dynasm", @@ -2623,8 +2630,7 @@ dependencies = [ [[package]] name = "linera-wasmer-vm" version = "4.4.0-linera.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f27d020717572fdb6222324ec46b10eeb49f6f4a120ee63cf7145f4392f12fd8" +source = "git+https://github.com/linera-io/wasmer?branch=fix-rust-probestack#4cd177617a7b1c3079370db27afa6f3d957f2571" dependencies = [ "backtrace", "cc", @@ -2642,6 +2648,7 @@ dependencies = [ "memoffset", "more-asserts", "region", + "rustversion", "scopeguard", "serde", "thiserror 1.0.69", @@ -2672,7 +2679,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -2683,15 +2690,15 @@ checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" [[package]] name = "lock_api" @@ -2704,9 +2711,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.28" +version = "0.4.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "lru" @@ -2743,9 +2750,9 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "memmap2" @@ -2814,13 +2821,13 @@ dependencies = [ [[package]] name = "mio" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" dependencies = [ "libc", - "wasi 0.11.1+wasi-snapshot-preview1", - "windows-sys 0.59.0", + "wasi", + "windows-sys 0.61.2", ] [[package]] @@ -2838,7 +2845,7 @@ dependencies = [ "bytes", "encoding_rs", "futures-util", - "http 1.3.1", + "http 1.4.0", "httparse", "memchr", "mime", @@ -2854,27 +2861,27 @@ checksum = "1d87ecb2933e8aeadb3e3a02b828fed80a7528047e68b4f424523a0981a3a084" [[package]] name = "ntapi" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +checksum = "c3b335231dfd352ffb0f8017f3b6027a4917f7df785ea2143d8af2adc66980ae" dependencies = [ "winapi", ] [[package]] name = "nu-ansi-term" -version = "0.50.1" +version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" +checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.61.2", ] [[package]] name = "num-conv" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" +checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" [[package]] name = "num-traits" @@ -2903,15 +2910,15 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "once_cell_polyfill" -version = "1.70.1" +version = "1.70.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "oneshot" -version = "0.1.11" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ce411919553d3f9fa53a0880544cda985a112117a0444d5ff1e870a893d6ea" +checksum = "269bca4c2591a28585d6bf10d9ed0332b7d76900a1b02bec41bdc3a2cdcda107" [[package]] name = "opentelemetry" @@ -2923,7 +2930,7 @@ dependencies = [ "futures-sink", "js-sys", "pin-project-lite", - "thiserror 2.0.17", + "thiserror 2.0.18", "tracing", ] @@ -2940,7 +2947,7 @@ dependencies = [ "percent-encoding", "rand 0.9.2", "serde_json", - "thiserror 2.0.17", + "thiserror 2.0.18", "tokio", "tokio-stream", ] @@ -3008,9 +3015,9 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pest" -version = "2.8.3" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e7521a040efde50c3ab6bbadafbe15ab6dc042686926be59ac35d74607df4" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" dependencies = [ "memchr", "ucd-trie", @@ -3018,9 +3025,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.8.3" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" +checksum = "11f486f1ea21e6c10ed15d5a7c77165d0ee443402f0780849d1768e7d9d6fe77" dependencies = [ "pest", "pest_generator", @@ -3028,22 +3035,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.8.3" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" +checksum = "8040c4647b13b210a963c1ed407c1ff4fdfa01c31d6d2a098218702e6664f94f" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "pest_meta" -version = "2.8.3" +version = "2.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" +checksum = "89815c69d36021a140146f26659a81d6c2afa33d216d736dd4be5381a7362220" dependencies = [ "pest", "sha2", @@ -3051,39 +3058,40 @@ dependencies = [ [[package]] name = "petgraph" -version = "0.7.1" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" +checksum = "8701b58ea97060d5e5b155d383a69952a60943f0e6dfe30b04c287beb0b27455" dependencies = [ "fixedbitset", - "indexmap 2.11.4", + "hashbrown 0.15.5", + "indexmap 2.13.0", ] [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -3118,9 +3126,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" dependencies = [ "zerovec", ] @@ -3147,7 +3155,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -3162,11 +3170,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.23.6", + "toml_edit 0.25.4+spec-1.1.0", ] [[package]] @@ -3195,9 +3203,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.101" +version = "1.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" dependencies = [ "unicode-ident", ] @@ -3219,11 +3227,11 @@ dependencies = [ [[package]] name = "proptest" -version = "1.8.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb0be07becd10686a0bb407298fb425360a5c44a663774406340c59a22de4ce" +checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", "num-traits", "rand 0.9.2", "rand_chacha 0.9.0", @@ -3233,9 +3241,9 @@ dependencies = [ [[package]] name = "prost" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7231bd9b3d3d33c86b58adbac74b5ec0ad9f496b19d22801d773636feaa95f3d" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" dependencies = [ "bytes", "prost-derive", @@ -3243,42 +3251,41 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac6c3320f9abac597dcbc668774ef006702672474aad53c6d596b62e487b40b1" +checksum = "343d3bd7056eda839b03204e68deff7d1b13aba7af2b2fd16890697274262ee7" dependencies = [ "heck 0.5.0", "itertools", "log", "multimap", - "once_cell", "petgraph", "prettyplease", "prost", "prost-types", "regex", - "syn 2.0.106", + "syn 2.0.117", "tempfile", ] [[package]] name = "prost-derive" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9120690fafc389a67ba3803df527d0ec9cbbc9cc45e4cc20b332996dfb672425" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", "itertools", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "prost-types" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9b4db3d6da204ed77bb26ba83b6122a73aeb2e87e25fbf7ad2e84c4ccbf8f72" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" dependencies = [ "prost", ] @@ -3320,9 +3327,9 @@ dependencies = [ [[package]] name = "quote" -version = "1.0.41" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -3333,6 +3340,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "radium" version = "0.7.0" @@ -3358,7 +3371,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", "serde", ] @@ -3379,7 +3392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -3388,17 +3401,17 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.16", + "getrandom 0.2.17", "serde", ] [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom 0.3.3", + "getrandom 0.3.4", "serde", ] @@ -3419,7 +3432,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" dependencies = [ - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -3448,7 +3461,7 @@ version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", ] [[package]] @@ -3465,9 +3478,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.11.3" +version = "1.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" dependencies = [ "aho-corasick", "memchr", @@ -3477,9 +3490,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.11" +version = "0.4.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" dependencies = [ "aho-corasick", "memchr", @@ -3488,9 +3501,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.6" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "region" @@ -3574,7 +3587,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" dependencies = [ "cc", "cfg-if", - "getrandom 0.2.16", + "getrandom 0.2.17", "libc", "untrusted", "windows-sys 0.52.0", @@ -3582,9 +3595,9 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.7.45" +version = "0.7.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9008cd6385b9e161d8229e1f6549dd23c3d022f132a2ea37ac3a10ac4935779b" +checksum = "2297bf9c81a3f0dc96bc9521370b88f054168c29826a75e89c55ff196e7ed6a1" dependencies = [ "bitvec", "bytecheck", @@ -3601,9 +3614,9 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.7.45" +version = "0.7.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "503d1d27590a2b0a3a4ca4c94755aa2875657196ecbf401a42eff41d7de532c0" +checksum = "84d7b42d4b8d06048d3ac8db0eb31bcb942cbeb709f0b5f2b2ebde398d3038f5" dependencies = [ "proc-macro2", "quote", @@ -3612,9 +3625,9 @@ dependencies = [ [[package]] name = "ruint" -version = "1.17.0" +version = "1.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a68df0380e5c9d20ce49534f292a36a7514ae21350726efe1865bdb1fa91d278" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" dependencies = [ "proptest", "rand 0.8.5", @@ -3633,9 +3646,9 @@ checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" [[package]] name = "rustc-demangle" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" [[package]] name = "rustc-hash" @@ -3654,15 +3667,15 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.2" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.1", + "windows-sys 0.61.2", ] [[package]] @@ -3704,18 +3717,18 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ruzstd" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3640bec8aad418d7d03c72ea2de10d5c646a598f9883c7babc160d91e3c1b26c" +checksum = "e5ff0cc5e135c8870a775d3320910cd9b564ec036b4dc0b8741629020be63f01" dependencies = [ "twox-hash", ] [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "scopeguard" @@ -3766,9 +3779,9 @@ dependencies = [ [[package]] name = "self_cell" -version = "1.2.0" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f7d95a54511e0c7be3f51e8867aa8cf35148d7b9445d44de2f943e2b206e749" +checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" [[package]] name = "semver" @@ -3863,7 +3876,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -3874,20 +3887,20 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -3924,9 +3937,9 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.15.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6093cd8c01b25262b84927e0f7151692158fab02d961e04c979d3903eba7ecc5" +checksum = "381b283ce7bc6b476d903296fb59d0d36633652b633b27f64db4fb46dcbfc3b9" dependencies = [ "base64 0.22.1", "chrono", @@ -3939,14 +3952,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.15.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7e6c180db0816026a61afa1cff5344fb7ebded7e4d3062772179f2501481c27" +checksum = "a6d4e30573c8cb306ed6ab1dca8423eec9a463ea0e155f45399455e0368b27e0" dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4007,10 +4020,11 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "signal-hook-registry" -version = "1.4.6" +version = "1.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a4719bff48cee6b39d12c020eeb490953ad2443b7055bd0b21fca26bd8c28b" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" dependencies = [ + "errno", "libc", ] @@ -4032,9 +4046,9 @@ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "slice-group-by" @@ -4060,12 +4074,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4098,9 +4112,9 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" [[package]] name = "static_assertions" @@ -4135,7 +4149,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta-derive", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4146,7 +4160,7 @@ checksum = "a60bcaff7397072dca0017d1db428e30d5002e00b6847703e2e42005c95fbe00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4168,7 +4182,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4190,9 +4204,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.106" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -4222,7 +4236,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4274,22 +4288,22 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tempfile" -version = "3.23.0" +version = "3.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" +checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" dependencies = [ "fastrand", - "getrandom 0.3.3", + "getrandom 0.4.2", "once_cell", "rustix", - "windows-sys 0.61.1", + "windows-sys 0.61.2", ] [[package]] name = "test-log" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" +checksum = "37d53ac171c92a39e4769491c4b4dde7022c60042254b5fc044ae409d34a24d4" dependencies = [ "test-log-macros", "tracing-subscriber", @@ -4297,13 +4311,13 @@ dependencies = [ [[package]] name = "test-log-macros" -version = "0.2.18" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" +checksum = "be35209fd0781c5401458ab66e4f98accf63553e8fae7425503e92fdd319783b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4315,7 +4329,7 @@ dependencies = [ "proc-macro2", "quote", "structmeta", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4329,11 +4343,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" dependencies = [ - "thiserror-impl 2.0.17", + "thiserror-impl 2.0.18", ] [[package]] @@ -4344,18 +4358,18 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "thiserror-impl" -version = "2.0.17" +version = "2.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4369,28 +4383,28 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "tinystr" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" dependencies = [ "displaydoc", "zerovec", @@ -4413,33 +4427,30 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.47.1" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ - "backtrace", "bytes", - "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", - "slab", - "socket2 0.6.0", + "socket2 0.6.3", "tokio-macros", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4454,9 +4465,9 @@ dependencies = [ [[package]] name = "tokio-stream" -version = "0.1.17" +version = "0.1.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" dependencies = [ "futures-core", "pin-project-lite", @@ -4465,9 +4476,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.16" +version = "0.7.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" dependencies = [ "bytes", "futures-core", @@ -4499,9 +4510,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.2" +version = "1.0.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1" +checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" dependencies = [ "serde_core", ] @@ -4512,7 +4523,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.13.0", "toml_datetime 0.6.11", "winnow 0.5.40", ] @@ -4523,33 +4534,33 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.11.4", + "indexmap 2.13.0", "serde", "serde_spanned", "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.13", + "winnow 0.7.15", ] [[package]] name = "toml_edit" -version = "0.23.6" +version = "0.25.4+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b" +checksum = "7193cbd0ce53dc966037f54351dbbcf0d5a642c7f0038c382ef9e677ce8c13f2" dependencies = [ - "indexmap 2.11.4", - "toml_datetime 0.7.2", + "indexmap 2.13.0", + "toml_datetime 1.0.0+spec-1.1.0", "toml_parser", - "winnow 0.7.13", + "winnow 0.7.15", ] [[package]] name = "toml_parser" -version = "1.0.3" +version = "1.0.9+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627" +checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" dependencies = [ - "winnow 0.7.13", + "winnow 0.7.15", ] [[package]] @@ -4560,24 +4571,24 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "tonic" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb7613188ce9f7df5bfe185db26c5814347d110db17920415cf2fbcad85e7203" +checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" dependencies = [ "async-trait", "axum", "base64 0.22.1", "bytes", - "h2 0.4.12", - "http 1.3.1", + "h2 0.4.13", + "http 1.4.0", "http-body 1.0.1", "http-body-util", - "hyper 1.7.0", + "hyper 1.8.1", "hyper-timeout", "hyper-util", "percent-encoding", "pin-project", - "socket2 0.6.0", + "socket2 0.6.3", "sync_wrapper 1.0.2", "tokio", "tokio-stream", @@ -4589,21 +4600,21 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c40aaccc9f9eccf2cd82ebc111adc13030d23e887244bc9cfa5d1d636049de3" +checksum = "1882ac3bf5ef12877d7ed57aad87e75154c11931c2ba7e6cde5e22d63522c734" dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "tonic-prost" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66bd50ad6ce1252d87ef024b3d64fe4c3cf54a86fb9ef4c631fdd0ded7aeaa67" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" dependencies = [ "bytes", "prost", @@ -4612,29 +4623,29 @@ dependencies = [ [[package]] name = "tonic-prost-build" -version = "0.14.2" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4a16cba4043dc3ff43fcb3f96b4c5c154c64cbd18ca8dce2ab2c6a451d058a2" +checksum = "f3144df636917574672e93d0f56d7edec49f90305749c668df5101751bb8f95a" dependencies = [ "prettyplease", "proc-macro2", "prost-build", "prost-types", "quote", - "syn 2.0.106", + "syn 2.0.117", "tempfile", "tonic-build", ] [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", - "indexmap 2.11.4", + "indexmap 2.13.0", "pin-project-lite", "slab", "sync_wrapper 1.0.2", @@ -4659,9 +4670,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" -version = "0.1.41" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" dependencies = [ "log", "pin-project-lite", @@ -4671,13 +4682,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4693,9 +4704,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.34" +version = "0.1.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" dependencies = [ "once_cell", "valuable", @@ -4742,9 +4753,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" dependencies = [ "matchers", "nu-ansi-term", @@ -4790,7 +4801,7 @@ checksum = "70977707304198400eb4835a78f6a9f928bf41bba420deb8fdb175cd965d77a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4820,7 +4831,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -4855,9 +4866,9 @@ checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" [[package]] name = "unicode-ident" -version = "1.0.19" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" @@ -4879,9 +4890,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.7" +version = "2.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" dependencies = [ "form_urlencoded", "idna", @@ -4903,9 +4914,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.18.1" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "js-sys", "wasm-bindgen", @@ -4939,28 +4950,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] -name = "wasi" -version = "0.14.7+wasi-0.2.4" +name = "wasip2" +version = "1.0.2+wasi-0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "883478de20367e224c0090af9cf5f9fa85bed63a95c1abf3afc5c083ebc06e8c" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" dependencies = [ - "wasip2", + "wit-bindgen 0.51.0", ] [[package]] -name = "wasip2" -version = "1.0.1+wasi-0.2.4" +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" dependencies = [ - "wit-bindgen 0.46.0", + "wit-bindgen 0.51.0", ] [[package]] name = "wasm-bindgen" -version = "0.2.104" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1da10c01ae9f1ae40cbfac0bac3b1e724b320abfcf52229f80b547c0d250e2d" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -4969,27 +4980,14 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "671c9a5a66f49d8a47345ab942e2cb93c7d1d0339065d4f8139c486121b43b19" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.106", - "wasm-bindgen-shared", -] - [[package]] name = "wasm-bindgen-futures" -version = "0.4.54" +version = "0.4.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e038d41e478cc73bae0ff9b36c60cff1c98b8f38f8d7e8061e79ee63608ac5c" +checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" dependencies = [ "cfg-if", + "futures-util", "js-sys", "once_cell", "wasm-bindgen", @@ -4998,9 +4996,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.104" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ca60477e4c59f5f2986c50191cd972e3a50d8a95603bc9434501cf156a9a119" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5008,22 +5006,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.104" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f07d2f20d4da7b26400c9f4a0511e6e0345b040694e8a75bd41d578fa4421d7" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ + "bumpalo", "proc-macro2", "quote", - "syn 2.0.106", - "wasm-bindgen-backend", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.104" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bad67dc8b2a1a6e5448428adec4c3e84c43e561d8c9ee8a9e5aabeb193ec41d1" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -5037,6 +5035,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.202.0" @@ -5044,15 +5052,27 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "094aea3cb90e09f16ee25a4c0e324b3e8c934e7fd838bfa039aef5352f44a917" dependencies = [ "anyhow", - "indexmap 2.11.4", + "indexmap 2.13.0", "serde", "serde_derive", "serde_json", "spdx", - "wasm-encoder", + "wasm-encoder 0.202.0", "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.13.0", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-streams" version = "0.4.2" @@ -5087,7 +5107,7 @@ dependencies = [ "bytecheck", "enum-iterator", "enumset", - "getrandom 0.2.16", + "getrandom 0.2.17", "hex", "indexmap 1.9.3", "more-asserts", @@ -5106,8 +5126,8 @@ version = "0.121.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9dbe55c8f9d0dbd25d9447a5a889ff90c0cc3feaa7395310d3d826b2c703eaab" dependencies = [ - "bitflags 2.9.4", - "indexmap 2.11.4", + "bitflags 2.11.0", + "indexmap 2.13.0", "semver", ] @@ -5117,16 +5137,28 @@ version = "0.202.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" dependencies = [ - "bitflags 2.9.4", - "indexmap 2.11.4", + "bitflags 2.11.0", + "indexmap 2.13.0", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.13.0", "semver", ] [[package]] name = "web-sys" -version = "0.3.81" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9367c417a924a74cae129e6a2ae3b47fabb1f8995595ab474029da749a8be120" +checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" dependencies = [ "js-sys", "wasm-bindgen", @@ -5160,7 +5192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "535507b55b73bb78d37bbc732c8bf8ebbc7b26902ab06fbf356fc3b46ad4b06c" dependencies = [ "futures", - "thiserror 2.0.17", + "thiserror 2.0.18", ] [[package]] @@ -5231,7 +5263,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -5242,14 +5274,14 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "windows-link" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" [[package]] name = "windows-result" @@ -5302,18 +5334,9 @@ dependencies = [ [[package]] name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.4", -] - -[[package]] -name = "windows-sys" -version = "0.61.1" +version = "0.61.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" dependencies = [ "windows-link", ] @@ -5342,30 +5365,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d42b7b7f66d2a06854650af09cfdf8713e427a439c97ad65a6375318033ac4b" -dependencies = [ - "windows-link", - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -5378,12 +5384,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - [[package]] name = "windows_aarch64_msvc" version = "0.33.0" @@ -5402,12 +5402,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - [[package]] name = "windows_i686_gnu" version = "0.33.0" @@ -5426,24 +5420,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - [[package]] name = "windows_i686_msvc" version = "0.33.0" @@ -5462,12 +5444,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - [[package]] name = "windows_x86_64_gnu" version = "0.33.0" @@ -5486,12 +5462,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -5504,12 +5474,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - [[package]] name = "windows_x86_64_msvc" version = "0.33.0" @@ -5528,12 +5492,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - [[package]] name = "winnow" version = "0.5.40" @@ -5545,9 +5503,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.13" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] @@ -5569,14 +5527,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fb4e7653763780be47e38f479e9aa83c768aa6a3b2ed086dc2826fdbbb7e7f5" dependencies = [ "wit-bindgen-rt", - "wit-bindgen-rust-macro", + "wit-bindgen-rust-macro 0.24.0", ] [[package]] name = "wit-bindgen" -version = "0.46.0" +version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro 0.51.0", +] [[package]] name = "wit-bindgen-core" @@ -5585,7 +5546,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b67e11c950041849a10828c7600ea62a4077c01e8af72e8593253575428f91b" dependencies = [ "anyhow", - "wit-parser", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", ] [[package]] @@ -5594,7 +5566,7 @@ version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b0780cf7046630ed70f689a098cd8d56c5c3b22f2a7379bbdb088879963ff96" dependencies = [ - "bitflags 2.9.4", + "bitflags 2.11.0", ] [[package]] @@ -5605,10 +5577,26 @@ checksum = "30acbe8fb708c3a830a33c4cb705df82659bf831b492ec6ca1a17a369cfeeafb" dependencies = [ "anyhow", "heck 0.4.1", - "indexmap 2.11.4", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", + "indexmap 2.13.0", + "wasm-metadata 0.202.0", + "wit-bindgen-core 0.24.0", + "wit-component 0.202.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap 2.13.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", ] [[package]] @@ -5620,9 +5608,24 @@ dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 2.0.106", - "wit-bindgen-core", - "wit-bindgen-rust", + "syn 2.0.117", + "wit-bindgen-core 0.24.0", + "wit-bindgen-rust 0.24.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", ] [[package]] @@ -5632,16 +5635,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c836b1fd9932de0431c1758d8be08212071b6bba0151f7bac826dbc4312a2a9" dependencies = [ "anyhow", - "bitflags 2.9.4", - "indexmap 2.11.4", + "bitflags 2.11.0", + "indexmap 2.13.0", "log", "serde", "serde_derive", "serde_json", - "wasm-encoder", - "wasm-metadata", + "wasm-encoder 0.202.0", + "wasm-metadata 0.202.0", "wasmparser 0.202.0", - "wit-parser", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.13.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", ] [[package]] @@ -5652,7 +5674,7 @@ checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" dependencies = [ "anyhow", "id-arena", - "indexmap 2.11.4", + "indexmap 2.13.0", "log", "semver", "serde", @@ -5662,11 +5684,29 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.13.0", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "writeable" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wyz" @@ -5685,11 +5725,10 @@ checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" [[package]] name = "yoke" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" dependencies = [ - "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -5697,34 +5736,34 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.0" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.27" +version = "0.8.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" +checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.27" +version = "0.8.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" +checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] @@ -5744,7 +5783,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", "synstructure", ] @@ -5759,20 +5798,20 @@ dependencies = [ [[package]] name = "zeroize_derive" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] [[package]] name = "zerotrie" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" dependencies = [ "displaydoc", "yoke", @@ -5781,9 +5820,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.4" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" +checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" dependencies = [ "yoke", "zerofrom", @@ -5792,15 +5831,21 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.1" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.106", + "syn 2.0.117", ] +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + [[package]] name = "zstd" version = "0.13.3" diff --git a/linera-sdk/tests/fixtures/publish-read-data-blob/src/contract.rs b/linera-sdk/tests/fixtures/publish-read-data-blob/src/contract.rs index e234390b2934..c298f7177dbb 100644 --- a/linera-sdk/tests/fixtures/publish-read-data-blob/src/contract.rs +++ b/linera-sdk/tests/fixtures/publish-read-data-blob/src/contract.rs @@ -3,8 +3,6 @@ #![cfg_attr(target_arch = "wasm32", no_main)] -mod state; - use linera_sdk::{ linera_base_types::{DataBlobHash, WithContractAbi}, Contract, ContractRuntime, diff --git a/linera-sdk/tests/fixtures/publish-read-data-blob/src/service.rs b/linera-sdk/tests/fixtures/publish-read-data-blob/src/service.rs index 2b87a4805b2b..9f098e109111 100644 --- a/linera-sdk/tests/fixtures/publish-read-data-blob/src/service.rs +++ b/linera-sdk/tests/fixtures/publish-read-data-blob/src/service.rs @@ -3,8 +3,6 @@ #![cfg_attr(target_arch = "wasm32", no_main)] -mod state; - use std::sync::Arc; use linera_sdk::{ diff --git a/linera-service/src/cli_wrappers/wallet.rs b/linera-service/src/cli_wrappers/wallet.rs index 893484fbe296..6768f13e94c7 100644 --- a/linera-service/src/cli_wrappers/wallet.rs +++ b/linera-service/src/cli_wrappers/wallet.rs @@ -1283,22 +1283,29 @@ impl ClientWrapper { is_workspace: bool, ) -> Result<(PathBuf, PathBuf)> { Command::new("cargo") - .current_dir(self.path_provider.path()) + .current_dir(path) + // Clear these so that the examples' `.cargo/config.toml` (which sets + // `-Zunstable-options` via rustflags) and `rust-toolchain.toml` (which + // selects nightly) take effect. Both are required for `build-std` and + // the custom `wasm32-linera-chain` JSON target spec. + .env_remove("RUSTFLAGS") + .env_remove("RUSTUP_TOOLCHAIN") .arg("build") .arg("--release") - .args(["--target", "wasm32-unknown-unknown"]) + .args(["--target", "wasm32-linera-chain"]) .arg("--manifest-path") .arg(path.join("Cargo.toml")) .spawn_and_wait_for_stdout() .await?; + let wasm_name = name.replace('-', "_"); let release_dir = match is_workspace { - true => path.join("../target/wasm32-unknown-unknown/release"), - false => path.join("target/wasm32-unknown-unknown/release"), + true => path.join("../target/wasm32-linera-chain/release"), + false => path.join("target/wasm32-linera-chain/release"), }; - let contract = release_dir.join(format!("{}_contract.wasm", name.replace('-', "_"))); - let service = release_dir.join(format!("{}_service.wasm", name.replace('-', "_"))); + let contract = release_dir.join(format!("{wasm_name}_contract.wasm")); + let service = release_dir.join(format!("{wasm_name}_service.wasm")); let contract_size = fs_err::tokio::metadata(&contract).await?.len(); let service_size = fs_err::tokio::metadata(&service).await?.len(); diff --git a/linera-service/src/exporter/runloops/indexer/indexer_exporter.rs b/linera-service/src/exporter/runloops/indexer/indexer_exporter.rs index 576e2182e2fa..c59550929eb4 100644 --- a/linera-service/src/exporter/runloops/indexer/indexer_exporter.rs +++ b/linera-service/src/exporter/runloops/indexer/indexer_exporter.rs @@ -267,7 +267,7 @@ where retries += 1; if retries == 1 { tracing::info!(index, "waiting for block to be processed"); - } else if retries % 60 == 0 { + } else if retries.is_multiple_of(60) { tracing::warn!(index, retries, "still waiting for block to be processed"); } tokio::time::sleep(Duration::from_secs(1)).await diff --git a/linera-service/src/node_service.rs b/linera-service/src/node_service.rs index faee01c3166a..444c9624f40f 100644 --- a/linera-service/src/node_service.rs +++ b/linera-service/src/node_service.rs @@ -56,7 +56,7 @@ use serde_json::json; use tokio::sync::{mpsc::UnboundedReceiver, OwnedRwLockReadGuard}; use tokio_util::sync::CancellationToken; use tower_http::cors::CorsLayer; -use tracing::{debug, error, info, instrument, trace}; +use tracing::{debug, info, instrument, trace}; use crate::util; diff --git a/linera-service/src/project.rs b/linera-service/src/project.rs index 57e33644e479..da20ee28d5a6 100644 --- a/linera-service/src/project.rs +++ b/linera-service/src/project.rs @@ -52,6 +52,12 @@ impl Project { debug!("Writing rust-toolchain.toml"); Self::create_rust_toolchain(&root)?; + debug!("Writing .cargo/config.toml"); + Self::create_cargo_config(&root)?; + + debug!("Writing wasm32-linera-chain.json"); + Self::create_wasm_target(&root)?; + debug!("Writing state.rs"); Self::create_state_file(&source_directory, name)?; @@ -172,6 +178,22 @@ impl Project { ) } + fn create_cargo_config(project_root: &Path) -> Result<()> { + let cargo_dir = project_root.join(".cargo"); + fs_err::create_dir_all(&cargo_dir)?; + Self::write_string_to_file( + &cargo_dir.join("config.toml"), + include_str!("../template/.cargo/config.toml.template"), + ) + } + + fn create_wasm_target(project_root: &Path) -> Result<()> { + Self::write_string_to_file( + &project_root.join("wasm32-linera-chain.json"), + include_str!("../template/wasm32-linera-chain.json"), + ) + } + fn create_state_file(source_directory: &Path, project_name: &str) -> Result<()> { let project_name = project_name.to_case(Case::Pascal); let state_path = source_directory.join("state.rs"); diff --git a/linera-service/template/.cargo/config.toml.template b/linera-service/template/.cargo/config.toml.template new file mode 100644 index 000000000000..c1f6ee3869e6 --- /dev/null +++ b/linera-service/template/.cargo/config.toml.template @@ -0,0 +1,11 @@ +[build] +# Required for rustc to accept the custom wasm32-linera-chain target spec. +rustflags = ["-Zunstable-options"] + +[env] +# Makes the linera's wasm32-linera-chain target available. +RUST_TARGET_PATH = { value = "", relative = true } + +[unstable] +build-std = ["std", "panic_abort"] +json-target-spec = true diff --git a/linera-service/template/rust-toolchain.toml.template b/linera-service/template/rust-toolchain.toml.template index e01fe10aba9f..16d22f6c56cc 120000 --- a/linera-service/template/rust-toolchain.toml.template +++ b/linera-service/template/rust-toolchain.toml.template @@ -1 +1 @@ -../../rust-toolchain.toml \ No newline at end of file +../../toolchains/nightly/rust-toolchain.toml \ No newline at end of file diff --git a/linera-service/template/wasm32-linera-chain.json b/linera-service/template/wasm32-linera-chain.json new file mode 100644 index 000000000000..b801bad0f8f2 --- /dev/null +++ b/linera-service/template/wasm32-linera-chain.json @@ -0,0 +1,57 @@ +{ + "arch": "wasm32", + "binary-format": "wasm", + "crt-objects-fallback": "true", + "data-layout": "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-n32:64-S128-ni:1:10:20", + "dll-prefix": "", + "dll-suffix": ".wasm", + "dynamic-linking": true, + "eh-frame-header": false, + "emit-debug-gdb-scripts": false, + "exe-suffix": ".wasm", + "generate-arange-section": false, + "has-thread-local": true, + "is-like-wasm": true, + "linker": "rust-lld", + "linker-flavor": "wasm-lld", + "linker-is-gnu": false, + "lld-flavor": "wasm", + "llvm-target": "wasm32-unknown-unknown", + "max-atomic-width": 64, + "metadata": { + "description": "WebAssembly target for Linera on-chain applications (contracts and services)", + "host_tools": false, + "std": true, + "tier": 2 + }, + "only-cdylib": true, + "os": "unknown", + "panic-strategy": "abort", + "pre-link-args": { + "wasm-lld": [ + "-z", + "stack-size=1048576", + "--stack-first", + "--allow-undefined", + "--no-demangle", + "--no-entry" + ], + "wasm-lld-cc": [ + "-Wl,-z", + "-Wl,stack-size=1048576", + "-Wl,--stack-first", + "-Wl,--allow-undefined", + "-Wl,--no-demangle", + "--target=wasm32-unknown-unknown", + "-Wl,--no-entry" + ] + }, + "relocation-model": "static", + "singlethread": true, + "target-family": [ + "wasm" + ], + "target-pointer-width": 32, + "tls-model": "local-exec", + "features": "-bulk-memory,-bulk-memory-opt,-nontrapping-fptoint" +} diff --git a/linera-service/tests/common/mod.rs b/linera-service/tests/common/mod.rs deleted file mode 100644 index a29e187906dd..000000000000 --- a/linera-service/tests/common/mod.rs +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright (c) Zefchain Labs, Inc. -// SPDX-License-Identifier: Apache-2.0 - -use std::env; - -/// Restores the `RUSTFLAGS` environment variable to make warnings fail as errors. -pub struct RestoreVarOnDrop; - -impl Drop for RestoreVarOnDrop { - fn drop(&mut self) { - env::set_var("RUSTFLAGS", "-D warnings"); - } -} - -/// Clears the `RUSTFLAGS` environment variable, if it was configured to make warnings fail as -/// errors. -/// -/// The returned [`RestoreVarOnDrop`] restores the environment variable to its original value when -/// it is dropped. -pub fn override_disable_warnings_as_errors() -> Option { - if matches!(env::var("RUSTFLAGS"), Ok(value) if value == "-D warnings") { - env::set_var("RUSTFLAGS", ""); - Some(RestoreVarOnDrop) - } else { - None - } -} diff --git a/linera-service/tests/local.rs b/linera-service/tests/local.rs index 2ae096ad0b13..350f792eccb6 100644 --- a/linera-service/tests/local.rs +++ b/linera-service/tests/local.rs @@ -7,11 +7,8 @@ use anyhow::Result; use linera_base::command::resolve_binary; use linera_service::cli_wrappers::{local_net::PathProvider, ClientWrapper, Network, OnClientDrop}; -mod common; - #[test_log::test(tokio::test)] async fn test_project_new() -> Result<()> { - let _rustflags_override = common::override_disable_warnings_as_errors(); let path_provider = PathProvider::create_temporary_directory()?; let id = 0; let client = ClientWrapper::new( diff --git a/linera-service/tests/local_net_tests.rs b/linera-service/tests/local_net_tests.rs index defd94924c5f..cab851236ec6 100644 --- a/linera-service/tests/local_net_tests.rs +++ b/linera-service/tests/local_net_tests.rs @@ -8,7 +8,6 @@ feature = "storage-service", ))] -mod common; mod guard; use std::{env, path::PathBuf, time::Duration}; @@ -658,7 +657,6 @@ async fn test_project_publish(database: Database, network: Network) -> Result<() let _guard = INTEGRATION_TEST_GUARD.lock().await; tracing::info!("Starting test {}", test_name!()); - let _rustflags_override = common::override_disable_warnings_as_errors(); let config = LocalNetConfig { num_initial_validators: 1, num_shards: 1, diff --git a/linera-service/wasm32-linera-chain.json b/linera-service/wasm32-linera-chain.json new file mode 100644 index 000000000000..b801bad0f8f2 --- /dev/null +++ b/linera-service/wasm32-linera-chain.json @@ -0,0 +1,57 @@ +{ + "arch": "wasm32", + "binary-format": "wasm", + "crt-objects-fallback": "true", + "data-layout": "e-m:e-p:32:32-p10:8:8-p20:8:8-i64:64-i128:128-n32:64-S128-ni:1:10:20", + "dll-prefix": "", + "dll-suffix": ".wasm", + "dynamic-linking": true, + "eh-frame-header": false, + "emit-debug-gdb-scripts": false, + "exe-suffix": ".wasm", + "generate-arange-section": false, + "has-thread-local": true, + "is-like-wasm": true, + "linker": "rust-lld", + "linker-flavor": "wasm-lld", + "linker-is-gnu": false, + "lld-flavor": "wasm", + "llvm-target": "wasm32-unknown-unknown", + "max-atomic-width": 64, + "metadata": { + "description": "WebAssembly target for Linera on-chain applications (contracts and services)", + "host_tools": false, + "std": true, + "tier": 2 + }, + "only-cdylib": true, + "os": "unknown", + "panic-strategy": "abort", + "pre-link-args": { + "wasm-lld": [ + "-z", + "stack-size=1048576", + "--stack-first", + "--allow-undefined", + "--no-demangle", + "--no-entry" + ], + "wasm-lld-cc": [ + "-Wl,-z", + "-Wl,stack-size=1048576", + "-Wl,--stack-first", + "-Wl,--allow-undefined", + "-Wl,--no-demangle", + "--target=wasm32-unknown-unknown", + "-Wl,--no-entry" + ] + }, + "relocation-model": "static", + "singlethread": true, + "target-family": [ + "wasm" + ], + "target-pointer-width": 32, + "tls-model": "local-exec", + "features": "-bulk-memory,-bulk-memory-opt,-nontrapping-fptoint" +} diff --git a/linera-storage/src/db_storage.rs b/linera-storage/src/db_storage.rs index 2508346c4d4c..ffee8b9b97aa 100644 --- a/linera-storage/src/db_storage.rs +++ b/linera-storage/src/db_storage.rs @@ -1125,7 +1125,7 @@ impl TestClock { self.lock().sleep_callback = None; } - fn lock(&self) -> std::sync::MutexGuard { + fn lock(&self) -> std::sync::MutexGuard<'_, TestClockInner> { self.0.lock().expect("poisoned TestClock mutex") } } diff --git a/linera-storage/src/lib.rs b/linera-storage/src/lib.rs index efc00a6d9ea8..f841f0349237 100644 --- a/linera-storage/src/lib.rs +++ b/linera-storage/src/lib.rs @@ -315,7 +315,7 @@ pub trait Storage: linera_base::util::traits::AutoTraits + Sized { } } - /// Creates a [`linera-sdk::UserContract`] instance using the bytecode in storage referenced + /// Creates a [`UserServiceCode`] instance using the bytecode in storage referenced /// by the `application_description`. async fn load_service( &self, diff --git a/linera-summary/src/github.rs b/linera-summary/src/github.rs index 5b2326edc14e..625ebf39b32b 100644 --- a/linera-summary/src/github.rs +++ b/linera-summary/src/github.rs @@ -310,7 +310,7 @@ impl Github { Ok(jobs_filtered) } - pub fn workflows_handler(&self) -> WorkflowsHandler { + pub fn workflows_handler(&self) -> WorkflowsHandler<'_> { self.octocrab.workflows( self.context.repository.owner.clone(), self.context.repository.name.clone(), diff --git a/linera-views/src/backends/rocks_db.rs b/linera-views/src/backends/rocks_db.rs index 0f6173eb4e0b..ce6c95e4f859 100644 --- a/linera-views/src/backends/rocks_db.rs +++ b/linera-views/src/backends/rocks_db.rs @@ -166,7 +166,10 @@ impl RocksDbStoreExecutor { Ok(entries.into_iter().collect::>()?) } - fn get_find_prefix_iterator(&self, prefix: &[u8]) -> rocksdb::DBRawIteratorWithThreadMode { + fn get_find_prefix_iterator( + &self, + prefix: &[u8], + ) -> rocksdb::DBRawIteratorWithThreadMode<'_, DB> { // Configure ReadOptions optimized for SSDs and iterator performance let mut read_opts = rocksdb::ReadOptions::default(); // Enable async I/O for better concurrency diff --git a/linera-views/src/views/bucket_queue_view.rs b/linera-views/src/views/bucket_queue_view.rs index 10de2054caa8..654fd2d95188 100644 --- a/linera-views/src/views/bucket_queue_view.rs +++ b/linera-views/src/views/bucket_queue_view.rs @@ -334,20 +334,19 @@ where self.stored_buckets[0].index = 0; } if !self.new_back_values.is_empty() { - let mut index = match self.stored_buckets.back() { + let start_index = match self.stored_buckets.back() { Some(bucket) => bucket.index + 1, None => 0, }; let new_back_values = std::mem::take(&mut self.new_back_values); let new_back_values = new_back_values.into_iter().collect::>(); - for value_chunk in new_back_values.chunks(N) { + for (index, value_chunk) in (start_index..).zip(new_back_values.chunks(N)) { self.stored_buckets.push_back(Bucket { index, state: State::Loaded { data: value_chunk.to_vec(), }, }); - index += 1; } if self.cursor.is_none() { self.cursor = Some(Cursor { diff --git a/linera-views/src/views/collection_view.rs b/linera-views/src/views/collection_view.rs index bb3a1150b76f..5ab3e8c5881a 100644 --- a/linera-views/src/views/collection_view.rs +++ b/linera-views/src/views/collection_view.rs @@ -313,7 +313,7 @@ impl ByteCollectionView { pub async fn try_load_entry( &self, short_key: &[u8], - ) -> Result>, ViewError> { + ) -> Result>, ViewError> { let updates = self.updates.read().await; match updates.get(short_key) { Some(update) => match update { @@ -371,7 +371,7 @@ impl ByteCollectionView { pub async fn try_load_entries( &self, short_keys: Vec>, - ) -> Result>>, ViewError> { + ) -> Result>>, ViewError> { let mut results = Vec::with_capacity(short_keys.len()); let mut keys_to_check = Vec::new(); let mut keys_to_check_metadata = Vec::new(); @@ -461,7 +461,7 @@ impl ByteCollectionView { /// ``` pub async fn try_load_all_entries( &self, - ) -> Result, ReadGuardedView)>, ViewError> { + ) -> Result, ReadGuardedView<'_, W>)>, ViewError> { let updates = self.updates.read().await; // Acquire the read lock to prevent writes. let short_keys = self.keys().await?; let mut results = Vec::with_capacity(short_keys.len()); @@ -1033,7 +1033,7 @@ impl CollectionView { pub async fn try_load_entry( &self, index: &Q, - ) -> Result>, ViewError> + ) -> Result>, ViewError> where I: Borrow, Q: Serialize + ?Sized, @@ -1065,7 +1065,7 @@ impl CollectionView { pub async fn try_load_entries<'a, Q>( &self, indices: impl IntoIterator, - ) -> Result>>, ViewError> + ) -> Result>>, ViewError> where I: Borrow, Q: Serialize + 'a, @@ -1094,7 +1094,7 @@ impl CollectionView { /// assert_eq!(subviews.len(), 1); /// # }) /// ``` - pub async fn try_load_all_entries(&self) -> Result)>, ViewError> + pub async fn try_load_all_entries(&self) -> Result)>, ViewError> where I: DeserializeOwned, { @@ -1451,7 +1451,7 @@ impl CustomCollectionView { pub async fn try_load_entry( &self, index: &Q, - ) -> Result>, ViewError> + ) -> Result>, ViewError> where I: Borrow, Q: CustomSerialize, @@ -1482,7 +1482,7 @@ impl CustomCollectionView { pub async fn try_load_entries<'a, Q>( &self, indices: impl IntoIterator, - ) -> Result>>, ViewError> + ) -> Result>>, ViewError> where I: Borrow, Q: CustomSerialize + 'a, @@ -1511,7 +1511,7 @@ impl CustomCollectionView { /// assert_eq!(subviews.len(), 1); /// # }) /// ``` - pub async fn try_load_all_entries(&self) -> Result)>, ViewError> + pub async fn try_load_all_entries(&self) -> Result)>, ViewError> where I: CustomSerialize, { @@ -1815,7 +1815,7 @@ mod graphql { async fn entry( &self, key: K, - ) -> Result>, async_graphql::Error> { + ) -> Result>, async_graphql::Error> { let value = self .try_load_entry(&key) .await? @@ -1826,7 +1826,7 @@ mod graphql { async fn entries( &self, input: Option>, - ) -> Result>>, async_graphql::Error> { + ) -> Result>>, async_graphql::Error> { let keys = if let Some(keys) = input .and_then(|input| input.filters) .and_then(|filters| filters.keys) @@ -1880,7 +1880,7 @@ mod graphql { async fn entry( &self, key: K, - ) -> Result>, async_graphql::Error> { + ) -> Result>, async_graphql::Error> { let value = self .try_load_entry(&key) .await? @@ -1891,7 +1891,7 @@ mod graphql { async fn entries( &self, input: Option>, - ) -> Result>>, async_graphql::Error> { + ) -> Result>>, async_graphql::Error> { let keys = if let Some(keys) = input .and_then(|input| input.filters) .and_then(|filters| filters.keys) diff --git a/linera-views/src/views/register_view.rs b/linera-views/src/views/register_view.rs index 82f998d0ccd7..d82bb98342e3 100644 --- a/linera-views/src/views/register_view.rs +++ b/linera-views/src/views/register_view.rs @@ -124,7 +124,7 @@ where fn post_save(&mut self) { if self.delete_storage_first { - self.stored_value = Box::default(); + *self.stored_value = Default::default(); } else if let Some(value) = self.update.take() { self.stored_value = value; } diff --git a/linera-views/tests/random_container_tests.rs b/linera-views/tests/random_container_tests.rs index c074ba9b58f6..d2328fb35954 100644 --- a/linera-views/tests/random_container_tests.rs +++ b/linera-views/tests/random_container_tests.rs @@ -580,10 +580,7 @@ async fn nested_collection_map_view_check() -> Result<()> { let submap = new_state_map.get_mut(&key1).unwrap(); let count = submap.len(); if count > 0 { - let subkeys = submap - .iter() - .map(|(key, _)| key.clone()) - .collect::>(); + let subkeys = submap.keys().cloned().collect::>(); let pos = rng.gen_range(0..count); let key2 = subkeys[pos].clone(); submap.remove(&key2); diff --git a/linera-witty-macros/src/wit_interface.rs b/linera-witty-macros/src/wit_interface.rs index b09c2a1b0df9..dc29c55f9cad 100644 --- a/linera-witty-macros/src/wit_interface.rs +++ b/linera-witty-macros/src/wit_interface.rs @@ -202,7 +202,7 @@ impl<'input> From<&'_ wit_export::FunctionInformation<'input>> for FunctionInfor if is_unit_type(&actual_output) { output = ReturnType::Default; } else { - *return_type = Box::new(actual_output); + **return_type = actual_output; } } diff --git a/linera-witty/src/runtime/wasmer/mod.rs b/linera-witty/src/runtime/wasmer/mod.rs index d3c5106f18f1..00610db41cf9 100644 --- a/linera-witty/src/runtime/wasmer/mod.rs +++ b/linera-witty/src/runtime/wasmer/mod.rs @@ -123,7 +123,7 @@ impl AsStoreMut for EntrypointInstance { impl EntrypointInstance { /// Returns mutable references to the [`Store`] and the [`wasmer::Instance`] stored inside this /// [`EntrypointInstance`]. - pub fn as_store_and_instance_mut(&mut self) -> (StoreMut, &mut wasmer::Instance) { + pub fn as_store_and_instance_mut(&mut self) -> (StoreMut<'_>, &mut wasmer::Instance) { (self.store.as_store_mut(), &mut self.instance) } } diff --git a/linera-witty/src/runtime/wasmtime/mod.rs b/linera-witty/src/runtime/wasmtime/mod.rs index aa2c4c5901a2..a3ce8381a584 100644 --- a/linera-witty/src/runtime/wasmtime/mod.rs +++ b/linera-witty/src/runtime/wasmtime/mod.rs @@ -41,13 +41,13 @@ impl EntrypointInstance { impl AsContext for EntrypointInstance { type Data = UserData; - fn as_context(&self) -> StoreContext { + fn as_context(&self) -> StoreContext<'_, UserData> { self.store.as_context() } } impl AsContextMut for EntrypointInstance { - fn as_context_mut(&mut self) -> StoreContextMut { + fn as_context_mut(&mut self) -> StoreContextMut<'_, UserData> { self.store.as_context_mut() } } diff --git a/linera-witty/tests/common/types.rs b/linera-witty/tests/common/types.rs index 55dfdc69afac..47bff31036b0 100644 --- a/linera-witty/tests/common/types.rs +++ b/linera-witty/tests/common/types.rs @@ -90,4 +90,5 @@ pub struct StructWithLists { /// A type that wraps a slice. #[derive(Clone, Copy, Debug, Eq, PartialEq, WitType, WitStore)] +#[allow(dead_code)] pub struct SliceWrapper<'slice>(pub &'slice [TupleWithoutPadding]); diff --git a/toolchains/nightly/rust-toolchain.toml b/toolchains/nightly/rust-toolchain.toml index e4048b76332a..51b2980e6bf5 100644 --- a/toolchains/nightly/rust-toolchain.toml +++ b/toolchains/nightly/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "nightly-2025-04-03" +channel = "nightly-2026-03-01" components = [ "clippy", "rustfmt", "rust-src" ] targets = [ "wasm32-unknown-unknown" ] profile = "minimal" diff --git a/toolchains/stable/rust-toolchain.toml b/toolchains/stable/rust-toolchain.toml index 7e81ac1c7fbc..baf285c5b771 100644 --- a/toolchains/stable/rust-toolchain.toml +++ b/toolchains/stable/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.86.0" +channel = "1.93.1" components = [ "clippy", "rustfmt", "rust-src" ] targets = [ "wasm32-unknown-unknown" ] profile = "minimal" diff --git a/web/.cargo/config.toml b/web/.cargo/config.toml index f83d847b7a57..5e52d97fd571 100644 --- a/web/.cargo/config.toml +++ b/web/.cargo/config.toml @@ -1,10 +1,13 @@ [target.wasm32-unknown-unknown] rustflags = [ - # support threading - "-C", "target-feature=+atomics,+mutable-globals,+reference-types", + # support threading; +bulk-memory is required for --shared-memory and must + # be re-enabled here since the root config disables it for contracts. + "-C", "target-feature=+atomics,+bulk-memory,+mutable-globals,+reference-types", + # Since Rust 1.92, atomics no longer auto-enables shared memory. + # These link args are needed for wasm threading support. + "-C", "link-args=--shared-memory --max-memory=1073741824 --import-memory --export=__wasm_init_tls --export=__tls_size --export=__tls_align --export=__tls_base", # allow linking C code (for `rust_secp256k1`) "--cfg=web_sys_unstable_apis", - "-Z", "wasm_c_abi=spec", ] [unstable]