From 4bc425b415d6e9b0c778ae98af2497bbf08091e3 Mon Sep 17 00:00:00 2001 From: Quentin Gliech Date: Mon, 1 Jul 2024 10:11:56 +0200 Subject: [PATCH] Use re-exported wasmtime to avoid dependencies conflicts --- Cargo.lock | 459 ++++----------------------------------- crates/policy/Cargo.toml | 1 - crates/policy/src/lib.rs | 8 +- 3 files changed, 52 insertions(+), 416 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7d9d6c45..caabbba0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -711,15 +711,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -1126,43 +1117,13 @@ dependencies = [ "libc", ] -[[package]] -name = "cranelift-bforest" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebf72ceaf38f7d41194d0cf6748214d8ef7389167fe09aad80f87646dbfa325b" -dependencies = [ - "cranelift-entity 0.107.2", -] - [[package]] name = "cranelift-bforest" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b6b33d7e757a887989eb18b35712b2a67d96171ec3149d1bfb657b29b7b367c" dependencies = [ - "cranelift-entity 0.109.0", -] - -[[package]] -name = "cranelift-codegen" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee7fde5cd9173f00ce02c491ee9e306d64740f4b1a697946e0474f389999e13" -dependencies = [ - "bumpalo", - "cranelift-bforest 0.107.2", - "cranelift-codegen-meta 0.107.2", - "cranelift-codegen-shared 0.107.2", - "cranelift-control 0.107.2", - "cranelift-entity 0.107.2", - "cranelift-isle 0.107.2", - "gimli", - "hashbrown 0.14.5", - "log", - "regalloc2", - "smallvec", - "target-lexicon", + "cranelift-entity", ] [[package]] @@ -1172,12 +1133,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9acf15cb22be42d07c3b57d7856329cb228b7315d385346149df2566ad5e4aa" dependencies = [ "bumpalo", - "cranelift-bforest 0.109.0", - "cranelift-codegen-meta 0.109.0", - "cranelift-codegen-shared 0.109.0", - "cranelift-control 0.109.0", - "cranelift-entity 0.109.0", - "cranelift-isle 0.109.0", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-control", + "cranelift-entity", + "cranelift-isle", "gimli", "hashbrown 0.14.5", "log", @@ -1187,45 +1148,21 @@ dependencies = [ "target-lexicon", ] -[[package]] -name = "cranelift-codegen-meta" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49bec6a517e78d4067500dc16acb558e772491a2bcb37301127448adfb8413c" -dependencies = [ - "cranelift-codegen-shared 0.107.2", -] - [[package]] name = "cranelift-codegen-meta" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e934d301392b73b3f8b0540391fb82465a0f179a3cee7c726482ac4727efcc97" dependencies = [ - "cranelift-codegen-shared 0.109.0", + "cranelift-codegen-shared", ] -[[package]] -name = "cranelift-codegen-shared" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ead4ea497b2dc2ac31fcabd6d5d0d5dc25b3964814122e343724bdf65a53c843" - [[package]] name = "cranelift-codegen-shared" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8afb2a2566b3d54b854dfb288b3b187f6d3d17d6f762c92898207eba302931da" -[[package]] -name = "cranelift-control" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81e8028c8d711ea7592648e70221f2e54acb8665f7ecd49545f021ec14c3341" -dependencies = [ - "arbitrary", -] - [[package]] name = "cranelift-control" version = "0.109.0" @@ -1235,16 +1172,6 @@ dependencies = [ "arbitrary", ] -[[package]] -name = "cranelift-entity" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32acd0632ba65c2566e75f64af9ef094bb8d90e58a9fbd33d920977a9d85c054" -dependencies = [ - "serde", - "serde_derive", -] - [[package]] name = "cranelift-entity" version = "0.109.0" @@ -1255,94 +1182,49 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "cranelift-frontend" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a395a704934aa944ba8939cac9001174b9ae5236f48bc091f89e33bb968336f6" -dependencies = [ - "cranelift-codegen 0.107.2", - "log", - "smallvec", - "target-lexicon", -] - [[package]] name = "cranelift-frontend" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0f74b84f16af2e982b0c0c72233503d9d55cbfe3865dbe807ca28dc6642a28b5" dependencies = [ - "cranelift-codegen 0.109.0", + "cranelift-codegen", "log", "smallvec", "target-lexicon", ] -[[package]] -name = "cranelift-isle" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b325ce81c4ee7082dc894537eb342c37898e14230fe7c02ea945691db3e2dd01" - [[package]] name = "cranelift-isle" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adf306d3dde705fb94bd48082f01d38c4ededc74293a4c007805f610bf08bc6e" -[[package]] -name = "cranelift-native" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea11f5ac85996fa093075d66397922d4f56085d5d84ec13043d0cd4f159c6818" -dependencies = [ - "cranelift-codegen 0.107.2", - "libc", - "target-lexicon", -] - [[package]] name = "cranelift-native" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ea0ebdef7aff4a79bcbc8b6495f31315f16b3bf311152f472eaa8d679352581" dependencies = [ - "cranelift-codegen 0.109.0", + "cranelift-codegen", "libc", "target-lexicon", ] -[[package]] -name = "cranelift-wasm" -version = "0.107.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4f175d4e299a8edabfbd64fa93c7650836cc8ad7f4879f9bd2632575a1f12d0" -dependencies = [ - "cranelift-codegen 0.107.2", - "cranelift-entity 0.107.2", - "cranelift-frontend 0.107.2", - "itertools", - "log", - "smallvec", - "wasmparser 0.202.0", - "wasmtime-types 20.0.2", -] - [[package]] name = "cranelift-wasm" version = "0.109.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d549108a1942065cdbac3bb96c2952afa0e1b9a3beff4b08c4308ac72257576d" dependencies = [ - "cranelift-codegen 0.109.0", - "cranelift-entity 0.109.0", - "cranelift-frontend 0.109.0", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", "itertools", "log", "smallvec", - "wasmparser 0.209.1", - "wasmtime-types 22.0.0", + "wasmparser", + "wasmtime-types", ] [[package]] @@ -3575,7 +3457,6 @@ dependencies = [ "thiserror", "tokio", "tracing", - "wasmtime 20.0.2", ] [[package]] @@ -3982,18 +3863,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "object" -version = "0.33.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8dd6c0cdf9429bce006e1362bfce61fa1bfd8c898a643ed8d2b471934701d3d" -dependencies = [ - "crc32fast", - "hashbrown 0.14.5", - "indexmap 2.2.6", - "memchr", -] - [[package]] name = "object" version = "0.36.1" @@ -4043,7 +3912,7 @@ dependencies = [ "tokio", "tracing", "urlencoding", - "wasmtime 22.0.0", + "wasmtime", ] [[package]] @@ -6665,17 +6534,6 @@ dependencies = [ "leb128", ] -[[package]] -name = "wasmparser" -version = "0.202.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" -dependencies = [ - "bitflags 2.5.0", - "indexmap 2.2.6", - "semver", -] - [[package]] name = "wasmparser" version = "0.209.1" @@ -6697,42 +6555,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ceca8ae6eaa8c7c87b33c25c53bdf299f8c2a764aee1179402ff7652ef3a6859" dependencies = [ "anyhow", - "wasmparser 0.209.1", -] - -[[package]] -name = "wasmtime" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4af5cb32045daee8476711eb12b8b71275c2dd1fc7a58cc2a11b33ce9205f6a2" -dependencies = [ - "anyhow", - "async-trait", - "bincode", - "bumpalo", - "cfg-if", - "gimli", - "indexmap 2.2.6", - "libc", - "log", - "object 0.33.0", - "once_cell", - "paste", - "rayon", - "rustix 0.38.34", - "serde", - "serde_derive", - "serde_json", - "target-lexicon", - "wasmparser 0.202.0", - "wasmtime-component-macro 20.0.2", - "wasmtime-cranelift 20.0.2", - "wasmtime-environ 20.0.2", - "wasmtime-fiber 20.0.2", - "wasmtime-jit-icache-coherence 20.0.2", - "wasmtime-runtime", - "wasmtime-slab 20.0.2", - "windows-sys 0.52.0", + "wasmparser", ] [[package]] @@ -6766,27 +6589,18 @@ dependencies = [ "smallvec", "sptr", "target-lexicon", - "wasmparser 0.209.1", - "wasmtime-asm-macros 22.0.0", - "wasmtime-component-macro 22.0.0", - "wasmtime-cranelift 22.0.0", - "wasmtime-environ 22.0.0", - "wasmtime-fiber 22.0.0", - "wasmtime-jit-icache-coherence 22.0.0", - "wasmtime-slab 22.0.0", - "wasmtime-versioned-export-macros 22.0.0", + "wasmparser", + "wasmtime-asm-macros", + "wasmtime-component-macro", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit-icache-coherence", + "wasmtime-slab", + "wasmtime-versioned-export-macros", "windows-sys 0.52.0", ] -[[package]] -name = "wasmtime-asm-macros" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515c4d24c8b55c0feab67e3d52a42f999fda8b9cfafbd69a82ed6bcf299d26e" -dependencies = [ - "cfg-if", -] - [[package]] name = "wasmtime-asm-macros" version = "22.0.0" @@ -6796,21 +6610,6 @@ dependencies = [ "cfg-if", ] -[[package]] -name = "wasmtime-component-macro" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794839a710a39a12677c67ff43fec54ef00d0ca6c6f631209a7c5524522221d3" -dependencies = [ - "anyhow", - "proc-macro2", - "quote", - "syn 2.0.60", - "wasmtime-component-util 20.0.2", - "wasmtime-wit-bindgen 20.0.2", - "wit-parser 0.202.0", -] - [[package]] name = "wasmtime-component-macro" version = "22.0.0" @@ -6821,47 +6620,17 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.60", - "wasmtime-component-util 22.0.0", - "wasmtime-wit-bindgen 22.0.0", - "wit-parser 0.209.1", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", ] -[[package]] -name = "wasmtime-component-util" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7839a1b9e15d17be1cb2a105f18be8e0bbf52bdec7a7cd6eb5d80d4c2cdf74f0" - [[package]] name = "wasmtime-component-util" version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9d2912c53d9054984b380dfbd7579f9c3681b2a73b903a56bd71a1c4f175f1e" -[[package]] -name = "wasmtime-cranelift" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57ec2d9a4b9990bea53a5dfd689d48663dbd19a46903eaf73e2022b3d1ef20d3" -dependencies = [ - "anyhow", - "cfg-if", - "cranelift-codegen 0.107.2", - "cranelift-control 0.107.2", - "cranelift-entity 0.107.2", - "cranelift-frontend 0.107.2", - "cranelift-native 0.107.2", - "cranelift-wasm 0.107.2", - "gimli", - "log", - "object 0.33.0", - "target-lexicon", - "thiserror", - "wasmparser 0.202.0", - "wasmtime-environ 20.0.2", - "wasmtime-versioned-export-macros 20.0.2", -] - [[package]] name = "wasmtime-cranelift" version = "22.0.0" @@ -6870,41 +6639,20 @@ checksum = "a3975deafea000457ba84355c7c0fce0372937204f77026510b7b454f28a3a65" dependencies = [ "anyhow", "cfg-if", - "cranelift-codegen 0.109.0", - "cranelift-control 0.109.0", - "cranelift-entity 0.109.0", - "cranelift-frontend 0.109.0", - "cranelift-native 0.109.0", - "cranelift-wasm 0.109.0", + "cranelift-codegen", + "cranelift-control", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", "gimli", "log", "object 0.36.1", "target-lexicon", "thiserror", - "wasmparser 0.209.1", - "wasmtime-environ 22.0.0", - "wasmtime-versioned-export-macros 22.0.0", -] - -[[package]] -name = "wasmtime-environ" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad72e2e3f7ea5b50fedf66dd36ba24634e4f445c370644683b433d45d88f6126" -dependencies = [ - "anyhow", - "bincode", - "cranelift-entity 0.107.2", - "gimli", - "indexmap 2.2.6", - "log", - "object 0.33.0", - "serde", - "serde_derive", - "target-lexicon", - "thiserror", - "wasmparser 0.202.0", - "wasmtime-types 20.0.2", + "wasmparser", + "wasmtime-environ", + "wasmtime-versioned-export-macros", ] [[package]] @@ -6914,7 +6662,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f444e900e848b884d8a8a2949b6f5b92af642a3e663ff8fbe78731143a55be61" dependencies = [ "anyhow", - "cranelift-entity 0.109.0", + "cranelift-entity", "gimli", "indexmap 2.2.6", "log", @@ -6924,24 +6672,9 @@ dependencies = [ "serde_derive", "target-lexicon", "wasm-encoder", - "wasmparser 0.209.1", + "wasmparser", "wasmprinter", - "wasmtime-types 22.0.0", -] - -[[package]] -name = "wasmtime-fiber" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dbdf3053e7e7ced0cd4ed76579995b62169a1a43696890584eae2de2e33bf54" -dependencies = [ - "anyhow", - "cc", - "cfg-if", - "rustix 0.38.34", - "wasmtime-asm-macros 20.0.2", - "wasmtime-versioned-export-macros 20.0.2", - "windows-sys 0.52.0", + "wasmtime-types", ] [[package]] @@ -6954,19 +6687,8 @@ dependencies = [ "cc", "cfg-if", "rustix 0.38.34", - "wasmtime-asm-macros 22.0.0", - "wasmtime-versioned-export-macros 22.0.0", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-jit-icache-coherence" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede45379f3b4d395d8947006de8043801806099a240a26db553919b68e96ab15" -dependencies = [ - "cfg-if", - "libc", + "wasmtime-asm-macros", + "wasmtime-versioned-export-macros", "windows-sys 0.52.0", ] @@ -6982,80 +6704,23 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "wasmtime-runtime" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65019d29d175c567b84173f2adf3b7a3af6d5592f8fe510dccae55d2569ec0d2" -dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap 2.2.6", - "libc", - "log", - "mach2", - "memfd", - "memoffset", - "paste", - "psm", - "rustix 0.38.34", - "sptr", - "wasmtime-asm-macros 20.0.2", - "wasmtime-environ 20.0.2", - "wasmtime-fiber 20.0.2", - "wasmtime-slab 20.0.2", - "wasmtime-versioned-export-macros 20.0.2", - "windows-sys 0.52.0", -] - -[[package]] -name = "wasmtime-slab" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6585868f5c427c3e9d2a8c0c3354e6d7d4518a0d17723ab25a0c1eebf5d5b4" - [[package]] name = "wasmtime-slab" version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a7de1f2bec5bbb35d532e61c85c049dc84ae671df60492f90b954ecf21169e7" -[[package]] -name = "wasmtime-types" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84d5381ff174faded38c7b2085fbe430dff59489c87a91403354d710075750fb" -dependencies = [ - "cranelift-entity 0.107.2", - "serde", - "serde_derive", - "thiserror", - "wasmparser 0.202.0", -] - [[package]] name = "wasmtime-types" version = "22.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "412463e9000e14cf6856be48628d2213c20c153e29ffc22b036980c892ea6964" dependencies = [ - "cranelift-entity 0.109.0", + "cranelift-entity", "serde", "serde_derive", "smallvec", - "wasmparser 0.209.1", -] - -[[package]] -name = "wasmtime-versioned-export-macros" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3b70422fdfa915c903f003b8b42554a8ae1aa0c6208429d8314ebf5721f3ac" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", + "wasmparser", ] [[package]] @@ -7069,18 +6734,6 @@ dependencies = [ "syn 2.0.60", ] -[[package]] -name = "wasmtime-wit-bindgen" -version = "20.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01840c0cfbbb01664c796e3f4edbd656e58f9d76db083c7e7c6bba59ea657a96" -dependencies = [ - "anyhow", - "heck 0.4.1", - "indexmap 2.2.6", - "wit-parser 0.202.0", -] - [[package]] name = "wasmtime-wit-bindgen" version = "22.0.0" @@ -7090,7 +6743,7 @@ dependencies = [ "anyhow", "heck 0.4.1", "indexmap 2.2.6", - "wit-parser 0.209.1", + "wit-parser", ] [[package]] @@ -7359,24 +7012,6 @@ dependencies = [ "url", ] -[[package]] -name = "wit-parser" -version = "0.202.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.2.6", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser 0.202.0", -] - [[package]] name = "wit-parser" version = "0.209.1" @@ -7392,7 +7027,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-xid", - "wasmparser 0.209.1", + "wasmparser", ] [[package]] diff --git a/crates/policy/Cargo.toml b/crates/policy/Cargo.toml index 360e6c77..26460d77 100644 --- a/crates/policy/Cargo.toml +++ b/crates/policy/Cargo.toml @@ -20,7 +20,6 @@ schemars = { workspace = true, optional = true } thiserror.workspace = true tokio.workspace = true tracing.workspace = true -wasmtime = { version = "20.0.2", default-features = false, features = ["async", "cranelift", "parallel-compilation"] } mas-data-model.workspace = true oauth2-types.workspace = true diff --git a/crates/policy/src/lib.rs b/crates/policy/src/lib.rs index 99a1720f..00e8f5a5 100644 --- a/crates/policy/src/lib.rs +++ b/crates/policy/src/lib.rs @@ -16,10 +16,12 @@ pub mod model; use mas_data_model::{AuthorizationGrant, Client, DeviceCodeGrant, User}; use oauth2_types::{registration::VerifiedClientMetadata, scope::Scope}; -use opa_wasm::Runtime; +use opa_wasm::{ + wasmtime::{Config, Engine, Module, OptLevel, Store}, + Runtime, +}; use thiserror::Error; use tokio::io::{AsyncRead, AsyncReadExt}; -use wasmtime::{Config, Engine, Module, Store}; use self::model::{ AuthorizationGrantInput, ClientRegistrationInput, EmailInput, PasswordInput, RegisterInput, @@ -95,7 +97,7 @@ impl PolicyFactory { ) -> Result { let mut config = Config::default(); config.async_support(true); - config.cranelift_opt_level(wasmtime::OptLevel::SpeedAndSize); + config.cranelift_opt_level(OptLevel::SpeedAndSize); let engine = Engine::new(&config).map_err(LoadError::Engine)?;