diff --git a/Cargo.lock b/Cargo.lock index df00f86..3fd5a28 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1031,21 +1031,29 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6b33d7e757a887989eb18b35712b2a67d96171ec3149d1bfb657b29b7b367c" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "cranelift-entity", ] +[[package]] +name = "cranelift-bitset" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" +dependencies = [ + "serde", + "serde_derive", +] + [[package]] name = "cranelift-codegen" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9acf15cb22be42d07c3b57d7856329cb228b7315d385346149df2566ad5e4aa" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "bumpalo", "cranelift-bforest", + "cranelift-bitset", "cranelift-codegen-meta", "cranelift-codegen-shared", "cranelift-control", @@ -1062,43 +1070,39 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e934d301392b73b3f8b0540391fb82465a0f179a3cee7c726482ac4727efcc97" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb2a2566b3d54b854dfb288b3b187f6d3d17d6f762c92898207eba302931da" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" [[package]] name = "cranelift-control" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0100f33b704cdacd01ad66ff41f8c5030d57cbff078e2a4e49ab1822591299fa" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8cfdc315e5d18997093e040a8d234bea1ac1e118a716d3e30f40d449e78207b" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ + "cranelift-bitset", "serde", "serde_derive", ] [[package]] name = "cranelift-frontend" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f74b84f16af2e982b0c0c72233503d9d55cbfe3865dbe807ca28dc6642a28b5" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "cranelift-codegen", "log", @@ -1108,15 +1112,13 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adf306d3dde705fb94bd48082f01d38c4ededc74293a4c007805f610bf08bc6e" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" [[package]] name = "cranelift-native" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ea0ebdef7aff4a79bcbc8b6495f31315f16b3bf311152f472eaa8d679352581" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "cranelift-codegen", "libc", @@ -1125,9 +1127,8 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.109.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d549108a1942065cdbac3bb96c2952afa0e1b9a3beff4b08c4308ac72257576d" +version = "0.110.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -3423,9 +3424,9 @@ dependencies = [ [[package]] name = "object" -version = "0.36.0" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "crc32fast", "hashbrown 0.14.5", @@ -5926,15 +5927,6 @@ dependencies = [ "syn 2.0.61", ] -[[package]] -name = "wasm-encoder" -version = "0.209.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4a05336882dae732ce6bd48b7e11fe597293cb72c13da4f35d7d5f8d53b2a7" -dependencies = [ - "leb128", -] - [[package]] name = "wasm-encoder" version = "0.211.1" @@ -5959,9 +5951,9 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.209.1" +version = "0.211.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07035cc9a9b41e62d3bb3a3815a66ab87c993c06fe1cf6b2a3f2a18499d937db" +checksum = "3189cc8a91f547390e2f043ca3b3e3fe0892f7d581767fd4e4b7f3dc3fe8e561" dependencies = [ "ahash", "bitflags 2.5.0", @@ -5973,23 +5965,24 @@ dependencies = [ [[package]] name = "wasmprinter" -version = "0.209.1" +version = "0.211.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceca8ae6eaa8c7c87b33c25c53bdf299f8c2a764aee1179402ff7652ef3a6859" +checksum = "23708dd7a986bd9b12fca26eff525bbc3659a336e947fd9ed9fdf79086825aec" dependencies = [ "anyhow", + "termcolor", "wasmparser", ] [[package]] name = "wasmtime" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786d8b5e7a4d54917c5ebe555b9667337e5f93383f49bddaaeec2eba68093b45" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "addr2line", "anyhow", "async-trait", + "bitflags 2.5.0", "bumpalo", "cc", "cfg-if", @@ -6004,8 +5997,7 @@ dependencies = [ "log", "mach2", "memfd", - "memoffset", - "object 0.36.0", + "object 0.36.1", "once_cell", "paste", "postcard", @@ -6019,7 +6011,7 @@ dependencies = [ "smallvec 1.13.2", "sptr", "target-lexicon", - "wasm-encoder 0.209.1", + "wasm-encoder", "wasmparser", "wasmtime-asm-macros", "wasmtime-cache", @@ -6039,18 +6031,16 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d697d99c341d4a9ffb72f3af7a02124d233eeb59aee010f36d88e97cca553d5e" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "916610f9ae9a6c22deb25bba2e6247ba9f00b093d30620875203b91328a1adfa" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "base64 0.21.7", @@ -6068,9 +6058,8 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b29b462b068e73b5b27fae092a27f47e5937cabf6b26be2779c978698a52feca" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "proc-macro2", @@ -6083,15 +6072,13 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d2912c53d9054984b380dfbd7579f9c3681b2a73b903a56bd71a1c4f175f1e" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" [[package]] name = "wasmtime-cranelift" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3975deafea000457ba84355c7c0fce0372937204f77026510b7b454f28a3a65" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "cfg-if", @@ -6103,7 +6090,7 @@ dependencies = [ "cranelift-wasm", "gimli", "log", - "object 0.36.0", + "object 0.36.1", "target-lexicon", "thiserror", "wasmparser", @@ -6113,23 +6100,24 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f444e900e848b884d8a8a2949b6f5b92af642a3e663ff8fbe78731143a55be61" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "cpp_demangle", + "cranelift-bitset", "cranelift-entity", "gimli", "indexmap 2.2.6", "log", - "object 0.36.0", + "object 0.36.1", "postcard", "rustc-demangle", + "semver", "serde", "serde_derive", "target-lexicon", - "wasm-encoder 0.209.1", + "wasm-encoder", "wasmparser", "wasmprinter", "wasmtime-component-util", @@ -6138,9 +6126,8 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ded58eb2d1bf0dcd2182d0ccd7055c4b10b50d711514f1d73f61515d0fa829d" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "cc", @@ -6153,11 +6140,10 @@ dependencies = [ [[package]] name = "wasmtime-jit-debug" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bc54198c6720f098210a85efb3ba8c078d1de4d373cdb6778850a66ae088d11" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ - "object 0.36.0", + "object 0.36.1", "once_cell", "rustix", "wasmtime-versioned-export-macros", @@ -6165,9 +6151,8 @@ dependencies = [ [[package]] name = "wasmtime-jit-icache-coherence" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5afe2f0499542f9a4bcfa1b55bfdda803b6ade4e7c93c6b99e0f39dba44b0a91" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "cfg-if", @@ -6177,16 +6162,15 @@ dependencies = [ [[package]] name = "wasmtime-slab" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a7de1f2bec5bbb35d532e61c85c049dc84ae671df60492f90b954ecf21169e7" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" [[package]] name = "wasmtime-types" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "412463e9000e14cf6856be48628d2213c20c153e29ffc22b036980c892ea6964" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ + "anyhow", "cranelift-entity", "serde", "serde_derive", @@ -6196,9 +6180,8 @@ dependencies = [ [[package]] name = "wasmtime-versioned-export-macros" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de5a9bc4f44ceeb168e9e8e3be4e0b4beb9095b468479663a9e24c667e36826f" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "proc-macro2", "quote", @@ -6207,9 +6190,8 @@ dependencies = [ [[package]] name = "wasmtime-wasi" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8abb1301089ed8e0b4840f539cba316a73ac382090f1b25d22d8c8eed8df49c7" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "async-trait", @@ -6238,14 +6220,13 @@ dependencies = [ [[package]] name = "wasmtime-winch" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed4db238a0241df2d15f79ad17b3a37a27f2ea6cb885894d81b42ae107544466" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "cranelift-codegen", "gimli", - "object 0.36.0", + "object 0.36.1", "target-lexicon", "wasmparser", "wasmtime-cranelift", @@ -6255,9 +6236,8 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc077306b38288262e5ba01d4b21532a6987416cdc0aedf04bb06c22a68fdc" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "heck 0.4.1", @@ -6284,7 +6264,7 @@ dependencies = [ "leb128", "memchr", "unicode-width", - "wasm-encoder 0.211.1", + "wasm-encoder", ] [[package]] @@ -6421,9 +6401,8 @@ dependencies = [ [[package]] name = "wiggle" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29830e5d01c182d24b94092c697aa7ab0ee97d22e78a2bf40ca91eae6ebca5c2" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "async-trait", @@ -6436,9 +6415,8 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "557567f2793508760cd855f7659b7a0b9dc4dbc451f53f1415d6943a15311ade" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "heck 0.4.1", @@ -6451,9 +6429,8 @@ dependencies = [ [[package]] name = "wiggle-macro" -version = "22.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc26129a8aea20b62c961d1b9ab4a3c3b56b10042ed85d004f8678af0f21ba6e" +version = "23.0.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "proc-macro2", "quote", @@ -6494,9 +6471,8 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85c6915884e731b2db0d8cf08cb64474cb69221a161675fd3c135f91febc3daa" +version = "0.21.0" +source = "git+https://github.com/bytecodealliance/wasmtime?rev=842fa767acdc26f096ac108605353b8b71e23169#842fa767acdc26f096ac108605353b8b71e23169" dependencies = [ "anyhow", "cranelift-codegen", @@ -6856,9 +6832,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.209.1" +version = "0.211.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e79b9e3c0b6bb589dec46317e645851e0db2734c44e2be5e251b03ff4a51269" +checksum = "a3cc90c50c7ec8a824b5d2cddddff13b2dc12b7a96bf8684d11474223c2ea22f" dependencies = [ "anyhow", "id-arena", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 4a55186..2822864 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -23,5 +23,9 @@ serde = { version = "1.0", features = ["derive"] } tauri = { version = "=2.0.0-beta.22", features = ["macos-private-api", "linux-ipc-protocol"] } tauri-plugin-window-state = "=2.0.0-beta.9" tauri-plugin-dialog = "=2.0.0-beta.9" -wasmtime = "22.0.0" -wasmtime-wasi = "22.0.0" + +# wasmtime = "22.0.0" +# wasmtime-wasi = "22.0.0" +# ~23.0.0 +wasmtime = { git = "https://github.com/bytecodealliance/wasmtime", rev = "842fa767acdc26f096ac108605353b8b71e23169" } +wasmtime-wasi = { git = "https://github.com/bytecodealliance/wasmtime", rev = "842fa767acdc26f096ac108605353b8b71e23169" } diff --git a/src-tauri/src/component_manager.rs b/src-tauri/src/component_manager.rs index 666b088..bf1132f 100644 --- a/src-tauri/src/component_manager.rs +++ b/src-tauri/src/component_manager.rs @@ -16,19 +16,23 @@ impl WasiView for State { } impl component::decoder::host::Host for State { - fn log(&mut self, message: String) -> () { + fn log(&mut self, message: String) { println!("Decoder: {message}"); } } +// @TODO Remove / improve comments below +// Testing // FW.add_decoders(["../test_files/components/rust_decoder/rust_decoder.wasm"]) // FW.add_decoders(["../test_files/components/javascript_decoder/javascript_decoder.wasm"]) // FW.add_decoders(["../test_files/components/python_decoder/python_decoder.wasm"]) pub fn add_decoders(decoder_paths: Vec) -> AddedDecodersCount { println!("decoders in Tauri: {decoder_paths:#?}"); - println!("{:#?}", std::env::current_dir()); + println!("Current dir: {:#?}", std::env::current_dir().unwrap()); let decoder_paths_len = decoder_paths.len(); + // New thread to prevent panics caused by running runtime in runtime + // @TODO replace with Tokio's spawn_blocking? std::thread::spawn(move || { if let Err(error) = add_decoder(&decoder_paths[0]) { eprintln!("add_decoders error: {error:?}"); @@ -52,8 +56,9 @@ fn add_decoder(path: &str) -> wasmtime::Result<()> { table: ResourceTable::new(), }); - let (component, _instance) = Component::instantiate(&mut store, &wasmtime_component, &linker)?; + let component = Component::instantiate(&mut store, &wasmtime_component, &linker)?; + println!("Decoder name: {}", component.component_decoder_decoder().call_name(&mut store)?); component.component_decoder_decoder().call_init(&mut store)?; Ok(()) diff --git a/test_files/components/python_decoder/python_decoder.wasm b/test_files/components/python_decoder/python_decoder.wasm index 8ed7cae..be408cd 100644 Binary files a/test_files/components/python_decoder/python_decoder.wasm and b/test_files/components/python_decoder/python_decoder.wasm differ diff --git a/test_files/components/python_decoder/src/app.py b/test_files/components/python_decoder/src/app.py index b5cfeff..fe8fe8a 100644 --- a/test_files/components/python_decoder/src/app.py +++ b/test_files/components/python_decoder/src/app.py @@ -5,7 +5,9 @@ name = "Python Test Decoder" class Decoder(exports.Decoder): def init(self) -> None: - host.log(f"{name} initialized") + # @TODO it panics for some reasons + # host.log(f"{name} initialized") + return None def name(self) -> str: return name