From de455e8a9f1528afb1f8f2f1e06a2a5e56ae0f73 Mon Sep 17 00:00:00 2001 From: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com> Date: Tue, 10 Nov 2026 11:17:40 -0800 Subject: [PATCH] Update Hyperlight to 0.18, hyperlight-js 0.5 and hyperlight-wasm 0.16 hyperlight-js 0.5.0 and hyperlight-wasm 0.16.0 require hyperlight-host 0.18, so the host and guest crates move to 0.18.0, not 0.19.0. hyperlight-wasm-aot 0.16.0 locks Wasmtime 36.0.18 and Cranelift 0.123.18. The server pins the same versions so it can load the AOT artifacts. hyperlight-wasm 0.16 snapshots are typed, so the Wasm handler keeps a Snapshot. The dummy handler uses Sandbox, the new name for MultiUseSandbox. The dummy guest keeps only its #[guest_function] handler. In 0.18 guest_dispatch_function returns Result, and its default returns the same GuestFunctionNotFound error. hyperlight_main has a no-op default, and srand is only needed with the libc feature, which the guest disables. Signed-off-by: Ludvig Liljenberg <4257730+ludfjig@users.noreply.github.com> --- Cargo.lock | 261 +++++++++--------- crates/hyperlight-dummy-guest/Cargo.lock | 37 ++- crates/hyperlight-dummy-guest/Cargo.toml | 5 +- crates/hyperlight-dummy-guest/src/main.rs | 21 +- crates/observer/Cargo.toml | 2 +- crates/server/Cargo.toml | 12 +- .../server/src/handlers/hyperlight_dummy.rs | 4 +- crates/server/src/handlers/hyperlight_wasm.rs | 9 +- tool-versions.sh | 2 +- 9 files changed, 178 insertions(+), 175 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d0c9f56..40e821b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -128,9 +128,9 @@ checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "base64" -version = "0.22.1" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" [[package]] name = "bindgen" @@ -552,36 +552,36 @@ dependencies = [ [[package]] name = "cranelift-assembler-x64" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6835dba958b2ab7ab523e7e99296e0524317f60430a00cf5850562ef78ea7001" +checksum = "9e92993516bcc43fd4e511b31d2e0c0c24f6b7ac18bb39e32cac2bfc05ea378e" dependencies = [ "cranelift-assembler-x64-meta", ] [[package]] name = "cranelift-assembler-x64-meta" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b6e4ce8ee6d899381fbdd9e6561336c651189d46cecaeee09b29e8d80aa786e" +checksum = "97eeeb61b08ec484f274119faf3a8a1b80dd300b0208c0247d16d05982fc89fe" dependencies = [ "cranelift-srcgen", ] [[package]] name = "cranelift-bforest" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cb6d37015df7ea4b60450c1229ad5f5819a1fb27434b063f8e6216dfbd0c42a" +checksum = "782eb44158681a105d157cb0ce63e3dc83f78ef5674266c12234f49da3f5c6e8" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-bitset" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986bea0b0858b55192782120032ce9c15943fa073f186f6e479653c59e62c329" +checksum = "edd59af193204c4f025fb2c2d9ee0aeb1f60929edf000b0dfa3d45543a62f264" dependencies = [ "serde", "serde_derive", @@ -589,9 +589,9 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f30aeb2de7f97d6f26b4a1642615834daad58e2e4d7c027810010a3a32f22be" +checksum = "b1c29bd985057d790db25f6bc60b369b311aa2d75c2f496a7e9993585bfc7d60" dependencies = [ "bumpalo", "cranelift-assembler-x64", @@ -616,9 +616,9 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd5dd137fcdedef33b6fd40edf1ced024460d764ceb75833e8198a843395945c" +checksum = "d9ef8a8495f19212f92db8425f768ffc67000c5cb417a0664475a8d09596700f" dependencies = [ "cranelift-assembler-x64-meta", "cranelift-codegen-shared", @@ -629,24 +629,24 @@ dependencies = [ [[package]] name = "cranelift-codegen-shared" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab54b260ef23a8f0f536679b9fc3b3b3e05353e8d1448f3ab83df02078e8be9b" +checksum = "a3aa5099097666baf45bd68ef036327c8f29d8785fffaaa7db3b3b6b7e94bcc6" [[package]] name = "cranelift-control" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f3e569779ad70537f34a670d444ee3d75ae583b2023913f4682814b0979f7e8" +checksum = "26f67f4f4e92c2934f40c2ff4574400bd27326932aad937a438b7fb459f60a63" dependencies = [ "arbitrary", ] [[package]] name = "cranelift-entity" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ff53acc85f5c5f7d9315ff133a6671d329a0f04aa2d1a8a2e81d59709ccddcb" +checksum = "8393d09f0abaa504896069e79f4eb6f15eb1853e5645732b082dac1ed292aaa8" dependencies = [ "cranelift-bitset", "serde", @@ -655,9 +655,9 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5976c0ff5bfadf61cd8bda81fea78ee5a07018b9cd03e66c0952c56684928b" +checksum = "580cfaecbd11476dd82f6a393123dcbd9dfe583467df8d0c8441c641444d4985" dependencies = [ "cranelift-codegen", "log", @@ -667,15 +667,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77b4f73d2288e9480fd2d1d9ab576394dce4805443d6148c6d819dbf78865ce4" +checksum = "8c044843adb7d94b1facebaad846c0a762f79a77953417e3f0182093bcbbdc38" [[package]] name = "cranelift-native" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9650c2baf22fa1e2542a5bdd8152616ec2023d929c4cbb450ff677ad8d9c21" +checksum = "b9d4c1707214e53f2040e4d13430069ea22623287b2750ed6d62e40eba88d91a" dependencies = [ "cranelift-codegen", "libc", @@ -684,9 +684,9 @@ dependencies = [ [[package]] name = "cranelift-srcgen" -version = "0.123.14" +version = "0.123.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad4f61ae701d73c326d3df08c366b29ad10f1ba06c245092f217b8d2306746b" +checksum = "d355a35edc49f628db7b793f3527eed31b560e77c3e8ed0e5258aad8df8a5249" [[package]] name = "crc32fast" @@ -1388,9 +1388,9 @@ dependencies = [ [[package]] name = "hyperlight-common" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ad5576d6ef947dc2822c2f5038ddff8325c158ddef4cbabf9d0b125294cdb0f" +checksum = "360d5876788b26af66bf055bca6b4f2c9c930a0fdcaebda4bd7f808c6bd93068" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -1408,9 +1408,9 @@ dependencies = [ [[package]] name = "hyperlight-component-macro" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14abdc36d8ca8091524d2e02b06a3af85416831ca98afbb93741375febebc17f" +checksum = "ec066e71934ebaddf70345ead15c4d01df880a9cd52fafb2934a559c4fa8a991" dependencies = [ "env_logger", "hyperlight-component-util", @@ -1423,9 +1423,9 @@ dependencies = [ [[package]] name = "hyperlight-component-util" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56dd660389ceaabca31e24c963d6080e0286638def0c2b2b54dac52924395896" +checksum = "271a2a808bc2e6b0058ca8dd6aea81c0dca91ec7919d167315289190bb64e767" dependencies = [ "itertools 0.15.0", "prettyplease 0.3.0", @@ -1433,30 +1433,31 @@ dependencies = [ "quote", "syn 3.0.5", "tracing", - "wasmparser 0.257.1", + "wasmparser 0.259.0", "wat", - "wit-component 0.257.1", - "wit-parser 0.257.1", + "wit-component 0.259.0", + "wit-parser 0.259.0", ] [[package]] name = "hyperlight-guest" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816f673f3f8ef6d5703796bf92927b85177ad1baac6f391551a88451a9e46a7e" +checksum = "7faceeab52cbc0f128e75fa4b0ee9fce17c3c462d7776feca66f41e98bf2a4bb" dependencies = [ "anyhow", "flatbuffers", "hyperlight-common", + "itertools 0.15.0", "serde_json", "tracing", ] [[package]] name = "hyperlight-guest-bin" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2d0ea739be89822992706da9dc6812ce359b654b328efd6141ba1549751907" +checksum = "e7eff3c3b94ae4da51f03d535e9a13a4132f5f87694a19514c038a9517cfd750" dependencies = [ "buddy_system_allocator", "flatbuffers", @@ -1473,9 +1474,9 @@ dependencies = [ [[package]] name = "hyperlight-guest-macro" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875d03a9e4d302f29d8feb57faff937f80c6f69ec9d31b32f41c41721144e25d" +checksum = "f957baa8d97e2787589bf084a18096c08ab4dd22d4f5a040f153f9f719330ec3" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -1485,9 +1486,9 @@ dependencies = [ [[package]] name = "hyperlight-guest-tracing" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f43a3d5d3fa245ce0fccee8a48ad7d94ec479e0898fc8f91fd440a1d65830c6" +checksum = "6a12c240f87acd92e80ea08e9a405e781e4a15b9f38fee5fe261e9ce69b816d3" dependencies = [ "hyperlight-common", "spin 0.12.3", @@ -1497,9 +1498,9 @@ dependencies = [ [[package]] name = "hyperlight-host" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d85dcf5ae7a578e1b09bdeb76cc3b3ca8e6e57d6395d2f57204aec45c1bbbde9" +checksum = "40f8b85ddd688890477158b9921b228973d1b70c84b866698838df0f32d2aa44" dependencies = [ "anyhow", "bindgen", @@ -1545,13 +1546,15 @@ dependencies = [ [[package]] name = "hyperlight-js" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2326a72050cc15010c9ef63586ef73be7c2c710e070fc08aea26dd44d63c233a" +checksum = "41ae21f376a27ef794cd24d245325ae2bf3f4d619e867b84f08340b042026fd0" dependencies = [ "anyhow", "cargo-hyperlight", + "cfg_aliases", "fn-traits", + "hyperlight-common", "hyperlight-host", "hyperlight-js-common", "hyperlight-js-runtime", @@ -1566,15 +1569,18 @@ dependencies = [ [[package]] name = "hyperlight-js-common" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27f04e014d3347d65bb085d089c53c01be5181242a67271574da7804a28e8a21" +checksum = "7bbe48e8ec9738f5bafbcb0a93d25a6272083e6ab0dfe7d7e4248497b2d2b181" +dependencies = [ + "bytes", +] [[package]] name = "hyperlight-js-runtime" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3c397d0163456d3099a71d15994a4490abc48ce4c95fe5b805a5fa6489330ba" +checksum = "da58cc65aaf5f12c746343c7cdee052643329d26ccc385c6434e7d8d2979642e" dependencies = [ "anyhow", "base64", @@ -1598,9 +1604,9 @@ dependencies = [ [[package]] name = "hyperlight-libc" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "108dd0e7335821a2ef0dfa375c08236c3302a117045822e2aa68c64147f8e895" +checksum = "a74af1c1cc60140c000a6ebd4eba3121bc2b8f56f134163c25eadca1146b73e0" dependencies = [ "anyhow", "bindgen", @@ -1610,9 +1616,9 @@ dependencies = [ [[package]] name = "hyperlight-wasm" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb84c121fa604ac2f22729bde2bfdb188c43972beb43ec78793d08bea2988ac3" +checksum = "18e26debff69496a1227f48e18ea1fc0da06dc1f2d012d8225da8e1580a6fbae" dependencies = [ "anyhow", "blake3", @@ -1641,9 +1647,9 @@ dependencies = [ [[package]] name = "hyperlight-wasm-macro" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d378a9052e6234151c65d703fcb3186396104cdaaa816358cbc75af39826f7a" +checksum = "a53057828ed349a5d516809e76173af367d7f3bdc1237324cc7c90894a4e1697" dependencies = [ "hyperlight-component-util", "itertools 0.15.0", @@ -1654,10 +1660,11 @@ dependencies = [ [[package]] name = "hyperlight-wasm-runtime" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35aa97bee9c7560cdd175da1ed3416f9b22eb6329d6b3ee79279245dd95ece0d" +checksum = "7841cbd01eee11dbc52056c134933b1f5b243af2d01a9cef9ccb0782e509807a" dependencies = [ + "bytes", "cargo_metadata", "cc", "cfg-if", @@ -2113,9 +2120,9 @@ dependencies = [ [[package]] name = "mshv-bindings" -version = "0.6.7" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbfd4f32d185152003679339751839da77c17e18fa8882a11051a236f841426" +checksum = "9b4b2414499597c6e31b1cd25239f19e8e8c55023b3bf8fcfa44d927cff6a123" dependencies = [ "libc", "num_enum", @@ -2125,9 +2132,9 @@ dependencies = [ [[package]] name = "mshv-ioctls" -version = "0.6.7" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f035616abe1e4cbc026a1a8094ff8d3900f5063fe6608309098bc745926fdfd8" +checksum = "c30d1b5b76a709e30b46248f52bbb44dde04a659d6d58255c7f06c88d528d210" dependencies = [ "libc", "mshv-bindings", @@ -2465,9 +2472,9 @@ dependencies = [ [[package]] name = "pulley-interpreter" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb0a4b56042e461cc64456650182938e2d1ede98fa0c8a975027416a2809c414" +checksum = "334ae8982dcf354e5f28e79fc6f935601e028b729cc174d3937eeeaa859057b8" dependencies = [ "cranelift-bitset", "log", @@ -2477,9 +2484,9 @@ dependencies = [ [[package]] name = "pulley-macros" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "244667bea2e214273442a71f26adb12b88a41f66718fb2c6eea47c00f0dc325f" +checksum = "9cd207bca4bc5e46cb4fcea87196dcbd78befc628c64c67d11dc99fce5cd5369" dependencies = [ "proc-macro2", "quote", @@ -3106,7 +3113,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", @@ -3448,22 +3455,22 @@ dependencies = [ [[package]] name = "wasm-encoder" -version = "0.257.1" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d8ad9f0a39050867bda22e6486c316e2e52d20a42154d5bc433934bf738d085" +checksum = "e974fe6821a8cf64575d51ea2194e2c8f77e7b66e9afe7419ce8a97f9ee0d251" dependencies = [ "leb128fmt", - "wasmparser 0.257.1", + "wasmparser 0.258.0", ] [[package]] name = "wasm-encoder" -version = "0.258.0" +version = "0.259.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e974fe6821a8cf64575d51ea2194e2c8f77e7b66e9afe7419ce8a97f9ee0d251" +checksum = "b1d0246511d901aacf25d2dc9111f0054947de5e093fe662099e709ff7530dc3" dependencies = [ "leb128fmt", - "wasmparser 0.258.0", + "wasmparser 0.259.0", ] [[package]] @@ -3480,14 +3487,14 @@ dependencies = [ [[package]] name = "wasm-metadata" -version = "0.257.1" +version = "0.259.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57460ad9bce753e8a80d47a445cb87c8724ea57f463d9c906a947c41032ce1ac" +checksum = "4e7bf119eb01f4a246864c10bd87c8f26c566350abb25aa4d5273c415bbab338" dependencies = [ "anyhow", "indexmap", - "wasm-encoder 0.257.1", - "wasmparser 0.257.1", + "wasm-encoder 0.259.0", + "wasmparser 0.259.0", ] [[package]] @@ -3517,26 +3524,26 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.257.1" +version = "0.258.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d92fc335fb6d48f46bda1d8b26b69e28320c15ac3272208333833d6e217e2b4a" +checksum = "d9a61719f93a87b16d325921e251800c4833f8fab50fa21c7de73aed50086313" dependencies = [ "bitflags 2.13.1", - "hashbrown 0.17.1", "indexmap", "semver", - "serde", ] [[package]] name = "wasmparser" -version = "0.258.0" +version = "0.259.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a61719f93a87b16d325921e251800c4833f8fab50fa21c7de73aed50086313" +checksum = "0f7c12eac7bb587801590f6a67ff0bc84d0748513864b71108e4b311cc3df694" dependencies = [ "bitflags 2.13.1", + "hashbrown 0.17.1", "indexmap", "semver", + "serde", ] [[package]] @@ -3552,9 +3559,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d05c745dc0978e589ef295958f3130122afc33d96af6bad3f0f06dbe7ac43a8" +checksum = "70095b9fe63cc2a87ed206729e11544610decc184c62898c5d201ff1d666d82e" dependencies = [ "addr2line", "anyhow", @@ -3598,9 +3605,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fd1d43cfaa1a0859d2f4fccc15e7e571e2a88b357e81bc88ba6c501b83d925d" +checksum = "a67ea8904b6e369e2218780bd1f9186f1980cb616445eb2c1f3c4e45c8397865" dependencies = [ "anyhow", "cranelift-bitset", @@ -3623,18 +3630,18 @@ dependencies = [ [[package]] name = "wasmtime-internal-asm-macros" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "515dd7158bf1719b41290cd2e6a2a46ec944484146816992f195af3720e49b3f" +checksum = "d0488a52ae93e654baecb08ce04d15d478756eb2168c2bdab7915710109161ce" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-internal-component-macro" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfca017b7daa80ff217c66f105ee20e674d87b7c11dca85bbb9d0146e9f443fb" +checksum = "377e406c3f8e7bea64db3cb3ee0d406c331e8fc09d8cb2e7bf9ad74cb5d3b31a" dependencies = [ "anyhow", "proc-macro2", @@ -3647,15 +3654,15 @@ dependencies = [ [[package]] name = "wasmtime-internal-component-util" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c3e218b51d2ef9eb181499e42c691512c1bc11dd6dc7746807a9b2b9290369c" +checksum = "97c24503bb712afe2c797dc291b96e57556ee62c35fd951f87e96088324de37c" [[package]] name = "wasmtime-internal-cranelift" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ba1736927b58e50e741e407da7c037c0250f3e213833a09c89dcd8f73ae2eac" +checksum = "f63ea7ee133de9109a4a1fc63dae3afc9ea32e92b8dada824fa4595dbf175f80" dependencies = [ "anyhow", "cfg-if", @@ -3680,9 +3687,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-fiber" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b238e4c20bddb900ec0cb380252d63e8d0644fd94de001119574f5921e895d9" +checksum = "69662a0a4dbe9784d1e8add9e3c5d2db0ca348085c624c27a70992dbe2eff4a3" dependencies = [ "anyhow", "cc", @@ -3696,9 +3703,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-debug" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f259b13685ad51e3dcf58cb69031279ed0d79c25bc3ccc8b50e7160ed04fbfe" +checksum = "00cb07d23903c0be359d6b920d94774ea322759c3f4d6721b61afa03602e4804" dependencies = [ "cc", "wasmtime-internal-versioned-export-macros", @@ -3706,9 +3713,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-jit-icache-coherence" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fed85537936b16460bac352ad149052c025db50467c7bc539dd47b31439374" +checksum = "aa2b47c37a6d026e2755fe2cf7ec5c1f4b0fba62e448ea910cdf6a07a4982c6a" dependencies = [ "anyhow", "cfg-if", @@ -3718,24 +3725,24 @@ dependencies = [ [[package]] name = "wasmtime-internal-math" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82fff10da41d0d15d90ebba70946a0aa16ed0957ae7b77e0b6d2a46e8221e555" +checksum = "b269f0ba44102c57fd5f94f1bf4395ccd4fc2b84698fc78f627a6f2a47131a62" dependencies = [ "libm", ] [[package]] name = "wasmtime-internal-slab" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44a8c097bab08d349d57dce1ab818859fefbe261ab3632b38fe127b1b551108" +checksum = "0e35ac9d503d503703cd24d532e53e2e93c86109b451df40a9801500045aee25" [[package]] name = "wasmtime-internal-unwinder" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f40a57d5e7c221ce56391d7dca0a918ba17ea00185462c7facbf534d7745184" +checksum = "83ce1d0930da44ed375701e6b4f187b46249f7efe2b1d8c1c77229a4adc82de9" dependencies = [ "anyhow", "cfg-if", @@ -3746,9 +3753,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-versioned-export-macros" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e085bfce1cb2089dbeef6e280a5d598666923d3dcd308712fe429fe43c9d19f5" +checksum = "3b6633be262400bd7abab4ff767a16e8b6a41ff117be54bf76dabecea9f96225" dependencies = [ "proc-macro2", "quote", @@ -3757,9 +3764,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-winch" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4916cd526e1ce294984cc5b70264cfc0ca103b41ca665b58728bde250b6b82f" +checksum = "509d1e1cf8e3b3306f291407c92bca8381d9294f8c54ad74b692538f1f5b23c7" dependencies = [ "anyhow", "cranelift-codegen", @@ -3774,9 +3781,9 @@ dependencies = [ [[package]] name = "wasmtime-internal-wit-bindgen" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ad2f9d9c3baa70ee4d157b55b4c08e5dc00f1d80aad3692b1e0806393914ea" +checksum = "a6d9a5b51b3400b4df1055724c4536ad5aa58fafe83cea5ca94f88cc9eb97563" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -3852,9 +3859,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "36.0.14" +version = "36.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e826c012c68403725e77adf6b904c2ea809e5d464aaf25aa6eda14559300b3df" +checksum = "8e470d7e674c41ad32dddc02d8d8a94983e0a4c516028bda60747e6dd862a567" dependencies = [ "anyhow", "cranelift-assembler-x64", @@ -4276,9 +4283,9 @@ dependencies = [ [[package]] name = "wit-component" -version = "0.257.1" +version = "0.259.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e8b7d04a4c9491ffea354923ed70c8826d52c699fe20a52e8ceca95017dddb8" +checksum = "092f783dee3253265fcde131475055f8c275ac0176a9c0396db1dc7b5544bfb4" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -4287,10 +4294,10 @@ dependencies = [ "serde", "serde_derive", "serde_json", - "wasm-encoder 0.257.1", - "wasm-metadata 0.257.1", - "wasmparser 0.257.1", - "wit-parser 0.257.1", + "wasm-encoder 0.259.0", + "wasm-metadata 0.259.0", + "wasmparser 0.259.0", + "wit-parser 0.259.0", ] [[package]] @@ -4331,9 +4338,9 @@ dependencies = [ [[package]] name = "wit-parser" -version = "0.257.1" +version = "0.259.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f815340f0bb65d9775ae21e56b503b496683557b9b627b195d2766c25fb24ae" +checksum = "6390f4f02493ce678d509c859cf1698e38929fb75c8012a6ee2f7d6b6cb66cd7" dependencies = [ "anyhow", "hashbrown 0.17.1", @@ -4345,7 +4352,7 @@ dependencies = [ "serde_derive", "serde_json", "unicode-ident", - "wasmparser 0.257.1", + "wasmparser 0.259.0", ] [[package]] diff --git a/crates/hyperlight-dummy-guest/Cargo.lock b/crates/hyperlight-dummy-guest/Cargo.lock index 26aeccc..14638b2 100644 --- a/crates/hyperlight-dummy-guest/Cargo.lock +++ b/crates/hyperlight-dummy-guest/Cargo.lock @@ -49,6 +49,12 @@ version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" +[[package]] +name = "either" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e9c71c2167ca323c882b99918929403426e2373ea17242ff5653e0d5e1058be" + [[package]] name = "equivalent" version = "1.0.2" @@ -79,9 +85,9 @@ checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" [[package]] name = "hyperlight-common" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ad5576d6ef947dc2822c2f5038ddff8325c158ddef4cbabf9d0b125294cdb0f" +checksum = "360d5876788b26af66bf055bca6b4f2c9c930a0fdcaebda4bd7f808c6bd93068" dependencies = [ "anyhow", "bitflags", @@ -100,29 +106,29 @@ dependencies = [ name = "hyperlight-dummy-guest" version = "0.1.0" dependencies = [ - "hyperlight-common", "hyperlight-guest", "hyperlight-guest-bin", ] [[package]] name = "hyperlight-guest" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "816f673f3f8ef6d5703796bf92927b85177ad1baac6f391551a88451a9e46a7e" +checksum = "7faceeab52cbc0f128e75fa4b0ee9fce17c3c462d7776feca66f41e98bf2a4bb" dependencies = [ "anyhow", "flatbuffers", "hyperlight-common", + "itertools", "serde_json", "tracing", ] [[package]] name = "hyperlight-guest-bin" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2d0ea739be89822992706da9dc6812ce359b654b328efd6141ba1549751907" +checksum = "e7eff3c3b94ae4da51f03d535e9a13a4132f5f87694a19514c038a9517cfd750" dependencies = [ "buddy_system_allocator", "flatbuffers", @@ -138,9 +144,9 @@ dependencies = [ [[package]] name = "hyperlight-guest-macro" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "875d03a9e4d302f29d8feb57faff937f80c6f69ec9d31b32f41c41721144e25d" +checksum = "f957baa8d97e2787589bf084a18096c08ab4dd22d4f5a040f153f9f719330ec3" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -150,9 +156,9 @@ dependencies = [ [[package]] name = "hyperlight-guest-tracing" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f43a3d5d3fa245ce0fccee8a48ad7d94ec479e0898fc8f91fd440a1d65830c6" +checksum = "6a12c240f87acd92e80ea08e9a405e781e4a15b9f38fee5fe261e9ce69b816d3" dependencies = [ "hyperlight-common", "spin 0.12.3", @@ -170,6 +176,15 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.15" diff --git a/crates/hyperlight-dummy-guest/Cargo.toml b/crates/hyperlight-dummy-guest/Cargo.toml index cb95433..b2fbea5 100644 --- a/crates/hyperlight-dummy-guest/Cargo.toml +++ b/crates/hyperlight-dummy-guest/Cargo.toml @@ -7,6 +7,5 @@ publish = false rust-version = "1.89" [dependencies] -hyperlight-common = { version = "0.17.0", default-features = false } -hyperlight-guest = { version = "0.17.0", default-features = false } -hyperlight-guest-bin = { version = "0.17.0", default-features = false, features = ["macros"] } +hyperlight-guest = { version = "0.18.0", default-features = false } +hyperlight-guest-bin = { version = "0.18.0", default-features = false, features = ["macros"] } diff --git a/crates/hyperlight-dummy-guest/src/main.rs b/crates/hyperlight-dummy-guest/src/main.rs index f256fd0..bce77ba 100644 --- a/crates/hyperlight-dummy-guest/src/main.rs +++ b/crates/hyperlight-dummy-guest/src/main.rs @@ -2,30 +2,13 @@ #![no_main] extern crate alloc; -extern crate hyperlight_guest_bin; use alloc::string::String; -use alloc::vec::Vec; - -use hyperlight_common::flatbuffer_wrappers::function_call::FunctionCall; -use hyperlight_common::flatbuffer_wrappers::guest_error::ErrorCode; -use hyperlight_guest::bail; use hyperlight_guest::error::Result; +use hyperlight_guest_bin::guest_function; -#[hyperlight_guest_bin::guest_function("handle_request")] +#[guest_function] fn handle_request(req: String) -> Result { assert_eq!(req, r#"{"uri": "/index.html"}"#); Ok(String::from(r#"{"uri":"/redirected.html"}"#)) } - -#[unsafe(no_mangle)] -pub extern "C" fn hyperlight_main() {} - -#[unsafe(no_mangle)] -pub fn guest_dispatch_function(function_call: FunctionCall) -> Result> { - let function_name = function_call.function_name; - bail!(ErrorCode::GuestFunctionNotFound => "{function_name}"); -} - -#[unsafe(no_mangle)] -pub extern "C" fn srand(_seed: u32) {} diff --git a/crates/observer/Cargo.toml b/crates/observer/Cargo.toml index 178ba3c..98c4151 100644 --- a/crates/observer/Cargo.toml +++ b/crates/observer/Cargo.toml @@ -6,6 +6,6 @@ license.workspace = true publish = false [dependencies] -hyperlight-host = { version = "0.17.0", default-features = false, features = [ "kvm", "mshv3" ]} +hyperlight-host = { version = "0.18.0", default-features = false, features = [ "kvm", "mshv3" ]} libc = "0.2.176" diff --git a/crates/server/Cargo.toml b/crates/server/Cargo.toml index 2b427d8..dc976f1 100644 --- a/crates/server/Cargo.toml +++ b/crates/server/Cargo.toml @@ -26,11 +26,11 @@ sandbox-observer = { path = "../observer" } # IMPORTANT: pinned to exact version because the wasmtime-aot handler loads .aot files # compiled by hyperlight-wasm-aot, and wasmtime requires an exact version match for AOT. # To find the required version, run: cargo install hyperlight-wasm-aot@ && rg 'wasmtime' ~/.cargo/registry/src/*/hyperlight-wasm-aot-*/Cargo.toml -wasmtime = { version = "=36.0.14", default-features = false, features = ["cranelift", "runtime", "component-model", "pooling-allocator", "pulley" ] } +wasmtime = { version = "=36.0.18", default-features = false, features = ["cranelift", "runtime", "component-model", "pooling-allocator", "pulley" ] } # If updating hyperlight-host, don't forget to update crates/hyperlight-dummy-guest/Cargo.toml -hyperlight-host = { version = "0.17.0", default-features = false, features = [ "kvm", "mshv3" ]} -hyperlight-common = { version = "0.17.0", default-features = false } -hyperlight-js = { version = "0.4.0", features = ["mshv3"] } +hyperlight-host = { version = "0.18.0", default-features = false, features = [ "kvm", "mshv3" ]} +hyperlight-common = { version = "0.18.0", default-features = false } +hyperlight-js = { version = "0.5.0", features = ["mshv3"] } # Keep hyperlight-wasm-aot in tool-versions.sh aligned with this version. -hyperlight-wasm = { version = "0.15.0" } -hyperlight-component-macro = "0.17.0" +hyperlight-wasm = { version = "0.16.0" } +hyperlight-component-macro = "0.18.0" diff --git a/crates/server/src/handlers/hyperlight_dummy.rs b/crates/server/src/handlers/hyperlight_dummy.rs index d28dfce..cedde7b 100644 --- a/crates/server/src/handlers/hyperlight_dummy.rs +++ b/crates/server/src/handlers/hyperlight_dummy.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use hyperlight_host::MultiUseSandbox; +use hyperlight_host::Sandbox; use hyperlight_host::sandbox::snapshot::Snapshot; use sandbox_observer::observer::CpuTimeObserver; @@ -19,7 +19,7 @@ enum DummyLifecycle { } pub struct HyperlightDummyContext { - sandbox: MultiUseSandbox, + sandbox: Sandbox, lifecycle: DummyLifecycle, } diff --git a/crates/server/src/handlers/hyperlight_wasm.rs b/crates/server/src/handlers/hyperlight_wasm.rs index 9db82cb..7d0efbb 100644 --- a/crates/server/src/handlers/hyperlight_wasm.rs +++ b/crates/server/src/handlers/hyperlight_wasm.rs @@ -2,8 +2,7 @@ use super::{Handler, SandboxMemory}; use crate::{DEFAULT_REQUEST_URI, SandboxReuseStrategy}; use bindings::hyperlight::bench::handler_interface::Request; -use hyperlight_host::sandbox::snapshot::Snapshot; -use hyperlight_wasm::{LoadedWasmSandbox, WasmSandbox}; +use hyperlight_wasm::{LoadedWasmSandbox, Snapshot, WasmSandbox}; use sandbox_observer::observer::{CpuTimeObserver, Observer}; use std::{os::fd::AsRawFd, sync::Arc}; @@ -64,8 +63,8 @@ enum WasmState { enum WasmLifecycle { Renew, - Restore(Arc), - Reuse(Arc), + Restore(Snapshot), + Reuse(Snapshot), } pub struct HyperlightWASMContext { @@ -123,7 +122,7 @@ impl Handler for HyperlightWASMHandler { let rt = bindings::register_host_functions(&mut sb, state).unwrap(); let sb = sb.load_runtime().unwrap(); - let prepare_snapshot = |sandbox: WasmSandbox, lifecycle: fn(Arc) -> WasmLifecycle| { + let prepare_snapshot = |sandbox: WasmSandbox, lifecycle: fn(Snapshot) -> WasmLifecycle| { let mut loaded = unsafe { sandbox.load_module_by_mapping(worker.aot.base, worker.aot.len) .expect("Failed to load the Wasm module for snapshot preparation") diff --git a/tool-versions.sh b/tool-versions.sh index 39a12c7..ca677c3 100644 --- a/tool-versions.sh +++ b/tool-versions.sh @@ -3,7 +3,7 @@ : "${OHA_VERSION:=1.9.0}" # Must use the Wasmtime version pinned by crates/server/Cargo.toml. -: "${HYPERLIGHT_WASM_AOT_VERSION:=0.15.0}" +: "${HYPERLIGHT_WASM_AOT_VERSION:=0.16.0}" : "${HYPERLIGHT_WASM_AOT_GIT_URL:=https://github.com/hyperlight-dev/hyperlight-wasm}" : "${HYPERLIGHT_WASM_AOT_GIT_REV:=}"