merge: 00001KVXK0WD3 legacy wasm removal
This commit is contained in:
commit
bedbb670e4
67
Cargo.lock
generated
67
Cargo.lock
generated
|
|
@ -2913,7 +2913,6 @@ dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
"tungstenite",
|
"tungstenite",
|
||||||
"uuid",
|
"uuid",
|
||||||
"wasmi",
|
|
||||||
"wasmtime",
|
"wasmtime",
|
||||||
"wat",
|
"wat",
|
||||||
"workflow",
|
"workflow",
|
||||||
|
|
@ -4035,12 +4034,6 @@ dependencies = [
|
||||||
"windows-sys 0.61.2",
|
"windows-sys 0.61.2",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "spin"
|
|
||||||
version = "0.9.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "stable_deref_trait"
|
name = "stable_deref_trait"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
|
|
@ -4053,16 +4046,6 @@ version = "1.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "string-interner"
|
|
||||||
version = "0.19.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "23de088478b31c349c9ba67816fa55d9355232d63c3afea8bf513e31f0f1d2c0"
|
|
||||||
dependencies = [
|
|
||||||
"hashbrown 0.15.5",
|
|
||||||
"serde",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "string_cache"
|
name = "string_cache"
|
||||||
version = "0.8.9"
|
version = "0.8.9"
|
||||||
|
|
@ -5096,56 +5079,6 @@ dependencies = [
|
||||||
"web-sys",
|
"web-sys",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasmi"
|
|
||||||
version = "0.51.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "bb321403ce594274827657a908e13d1d9918aa02257b8bf8391949d9764023ff"
|
|
||||||
dependencies = [
|
|
||||||
"spin",
|
|
||||||
"wasmi_collections",
|
|
||||||
"wasmi_core",
|
|
||||||
"wasmi_ir",
|
|
||||||
"wasmparser 0.228.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasmi_collections"
|
|
||||||
version = "0.51.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "e9b8e98e45a2a534489f8225e765cbf1cb9a3078072605e58158910cf4749172"
|
|
||||||
dependencies = [
|
|
||||||
"string-interner",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasmi_core"
|
|
||||||
version = "0.51.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "c25f375c0cdf14810eab07f532f61f14d4966f09c747a55067fdf3196e8512e6"
|
|
||||||
dependencies = [
|
|
||||||
"libm",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasmi_ir"
|
|
||||||
version = "0.51.5"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "624e2a68a4293ecb8f564260b68394b29cf3b3edba6bce35532889a2cb33c3d9"
|
|
||||||
dependencies = [
|
|
||||||
"wasmi_core",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "wasmparser"
|
|
||||||
version = "0.228.0"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "4abf1132c1fdf747d56bbc1bb52152400c70f336870f968b85e89ea422198ae3"
|
|
||||||
dependencies = [
|
|
||||||
"bitflags 2.11.0",
|
|
||||||
"indexmap",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wasmparser"
|
name = "wasmparser"
|
||||||
version = "0.244.0"
|
version = "0.244.0"
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ workflow-crate = { package = "workflow", path = "../workflow" }
|
||||||
uuid = { workspace = true, features = ["v7"] }
|
uuid = { workspace = true, features = ["v7"] }
|
||||||
session-metrics = { workspace = true }
|
session-metrics = { workspace = true }
|
||||||
arc-swap = "1.9.1"
|
arc-swap = "1.9.1"
|
||||||
wasmi = { version = "0.51.1", default-features = false, features = ["std", "extra-checks"] }
|
|
||||||
wasmtime = { version = "45.0.2", default-features = false, features = ["std", "runtime", "cranelift", "component-model"] }
|
wasmtime = { version = "45.0.2", default-features = false, features = ["std", "runtime", "cranelift", "component-model"] }
|
||||||
tungstenite = { version = "0.28.0", default-features = false, features = ["handshake", "native-tls", "url"] }
|
tungstenite = { version = "0.28.0", default-features = false, features = ["handshake", "native-tls", "url"] }
|
||||||
tokio-tungstenite = { version = "0.28.0", default-features = false, features = ["native-tls", "connect"] }
|
tokio-tungstenite = { version = "0.28.0", default-features = false, features = ["native-tls", "connect"] }
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -105,9 +105,9 @@ The migration should be phased:
|
||||||
|
|
||||||
## Runtime/backend caution
|
## Runtime/backend caution
|
||||||
|
|
||||||
The current implementation uses `wasmi` for core Wasm. Component Model support will likely require a different backend or a significantly richer component adapter path, such as `wasmtime::component` plus generated bindings. That has consequences for binary size, Nix packaging, build time, runtime limits, and sandbox policy. The migration Ticket must measure and validate those effects explicitly.
|
The legacy core-Wasm implementation used `wasmi` as a transitional backend. The active Plugin Tool runtime is now selected by package runtime metadata and executed through `wasmtime::component`; discovery and static inspection must continue to avoid executing package code.
|
||||||
|
|
||||||
If a component backend is added, keep it selected by package runtime metadata and Profile/feature policy. Do not make all Plugin packages depend on component execution during discovery or inspection.
|
Keep the component backend selected by package runtime metadata and Profile/feature policy. Do not make all Plugin packages depend on component execution during discovery or inspection.
|
||||||
|
|
||||||
## Relationship to pending host APIs
|
## Relationship to pending host APIs
|
||||||
|
|
||||||
|
|
@ -133,8 +133,7 @@ component = "plugin.component.wasm"
|
||||||
world = "yoi:plugin/tool@1.0.0"
|
world = "yoi:plugin/tool@1.0.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
The legacy core-Wasm ABI remains explicit and is not reinterpreted as a
|
The legacy core-Wasm ABI remains explicit metadata for migration diagnostics and is not reinterpreted as a component or executed by the active runtime path:
|
||||||
component:
|
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[runtime]
|
[runtime]
|
||||||
|
|
@ -145,9 +144,9 @@ abi = "yoi-plugin-wasm-1"
|
||||||
|
|
||||||
The component runtime uses `wasmtime::component` and expects the exported world
|
The component runtime uses `wasmtime::component` and expects the exported world
|
||||||
`yoi:plugin/tool@1.0.0` with a `call(tool-name: string, input-json: string) ->
|
`yoi:plugin/tool@1.0.0` with a `call(tool-name: string, input-json: string) ->
|
||||||
string` export. The returned string is the same ToolOutput JSON used by the raw
|
string` export. The returned string is the normal ToolOutput JSON, so
|
||||||
runtime, so registration and execution still flow through the existing
|
registration and execution still flow through the existing ToolRegistry and
|
||||||
ToolRegistry and Worker Tool-result history path.
|
Worker Tool-result history path.
|
||||||
|
|
||||||
Host imports are stable names under `yoi:host/*@1.0.0`; the repository WIT files
|
Host imports are stable names under `yoi:host/*@1.0.0`; the repository WIT files
|
||||||
live in `resources/plugin/wit/`. Importing `yoi:host/request@1.0.0` or
|
live in `resources/plugin/wit/`. Importing `yoi:host/request@1.0.0` or
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ rustPlatform.buildRustPackage rec {
|
||||||
filter = sourceFilter;
|
filter = sourceFilter;
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoHash = "sha256-8mo2/IZMq3tfnv8fKRxJOdfb+T3NOheUmqT8TiR+Wag=";
|
cargoHash = "sha256-kO1hvSYAVOVOIubP0Tm2Gpx2EWK7jwUKe30I8qTTU00=";
|
||||||
|
|
||||||
depsExtraArgs = {
|
depsExtraArgs = {
|
||||||
# Older fetchCargoVendor utilities used crates.io's API download endpoint,
|
# Older fetchCargoVendor utilities used crates.io's API download endpoint,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user