Skip to content

Commit 383cb1b

Browse files
Remove usages of Uint8Array for input parameters and replace them with Vec<u8> (#493)
1 parent 9012e8f commit 383cb1b

File tree

6 files changed

+92
-49
lines changed

6 files changed

+92
-49
lines changed

packages/restate-sdk-cloudflare-workers/patches/vm/sdk_shared_core_wasm_bindings_bg.js

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -656,7 +656,9 @@ export class WasmVM {
656656
sys_set_state(key, buffer) {
657657
const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
658658
const len0 = WASM_VECTOR_LEN;
659-
const ret = wasm.wasmvm_sys_set_state(this.__wbg_ptr, ptr0, len0, buffer);
659+
const ptr1 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
660+
const len1 = WASM_VECTOR_LEN;
661+
const ret = wasm.wasmvm_sys_set_state(this.__wbg_ptr, ptr0, len0, ptr1, len1);
660662
if (ret[1]) {
661663
throw takeFromExternrefTable0(ret[0]);
662664
}
@@ -702,11 +704,13 @@ export class WasmVM {
702704
const len0 = WASM_VECTOR_LEN;
703705
const ptr1 = passStringToWasm0(handler, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
704706
const len1 = WASM_VECTOR_LEN;
705-
var ptr2 = isLikeNone(key) ? 0 : passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
706-
var len2 = WASM_VECTOR_LEN;
707-
const ptr3 = passArrayJsValueToWasm0(headers, wasm.__wbindgen_malloc);
708-
const len3 = WASM_VECTOR_LEN;
709-
const ret = wasm.wasmvm_sys_call(this.__wbg_ptr, ptr0, len0, ptr1, len1, buffer, ptr2, len2, ptr3, len3);
707+
const ptr2 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
708+
const len2 = WASM_VECTOR_LEN;
709+
var ptr3 = isLikeNone(key) ? 0 : passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
710+
var len3 = WASM_VECTOR_LEN;
711+
const ptr4 = passArrayJsValueToWasm0(headers, wasm.__wbindgen_malloc);
712+
const len4 = WASM_VECTOR_LEN;
713+
const ret = wasm.wasmvm_sys_call(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
710714
if (ret[2]) {
711715
throw takeFromExternrefTable0(ret[1]);
712716
}
@@ -726,11 +730,13 @@ export class WasmVM {
726730
const len0 = WASM_VECTOR_LEN;
727731
const ptr1 = passStringToWasm0(handler, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
728732
const len1 = WASM_VECTOR_LEN;
729-
var ptr2 = isLikeNone(key) ? 0 : passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
730-
var len2 = WASM_VECTOR_LEN;
731-
const ptr3 = passArrayJsValueToWasm0(headers, wasm.__wbindgen_malloc);
732-
const len3 = WASM_VECTOR_LEN;
733-
const ret = wasm.wasmvm_sys_send(this.__wbg_ptr, ptr0, len0, ptr1, len1, buffer, ptr2, len2, ptr3, len3, !isLikeNone(delay), isLikeNone(delay) ? BigInt(0) : delay);
733+
const ptr2 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
734+
const len2 = WASM_VECTOR_LEN;
735+
var ptr3 = isLikeNone(key) ? 0 : passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
736+
var len3 = WASM_VECTOR_LEN;
737+
const ptr4 = passArrayJsValueToWasm0(headers, wasm.__wbindgen_malloc);
738+
const len4 = WASM_VECTOR_LEN;
739+
const ret = wasm.wasmvm_sys_send(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, !isLikeNone(delay), isLikeNone(delay) ? BigInt(0) : delay);
734740
if (ret[2]) {
735741
throw takeFromExternrefTable0(ret[1]);
736742
}
@@ -753,7 +759,9 @@ export class WasmVM {
753759
sys_complete_awakeable_success(id, buffer) {
754760
const ptr0 = passStringToWasm0(id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
755761
const len0 = WASM_VECTOR_LEN;
756-
const ret = wasm.wasmvm_sys_complete_awakeable_success(this.__wbg_ptr, ptr0, len0, buffer);
762+
const ptr1 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
763+
const len1 = WASM_VECTOR_LEN;
764+
const ret = wasm.wasmvm_sys_complete_awakeable_success(this.__wbg_ptr, ptr0, len0, ptr1, len1);
757765
if (ret[1]) {
758766
throw takeFromExternrefTable0(ret[0]);
759767
}
@@ -804,7 +812,9 @@ export class WasmVM {
804812
sys_complete_promise_success(key, buffer) {
805813
const ptr0 = passStringToWasm0(key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
806814
const len0 = WASM_VECTOR_LEN;
807-
const ret = wasm.wasmvm_sys_complete_promise_success(this.__wbg_ptr, ptr0, len0, buffer);
815+
const ptr1 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
816+
const len1 = WASM_VECTOR_LEN;
817+
const ret = wasm.wasmvm_sys_complete_promise_success(this.__wbg_ptr, ptr0, len0, ptr1, len1);
808818
if (ret[2]) {
809819
throw takeFromExternrefTable0(ret[1]);
810820
}
@@ -842,7 +852,9 @@ export class WasmVM {
842852
* @param {Uint8Array} buffer
843853
*/
844854
propose_run_completion_success(handle, buffer) {
845-
const ret = wasm.wasmvm_propose_run_completion_success(this.__wbg_ptr, handle, buffer);
855+
const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
856+
const len0 = WASM_VECTOR_LEN;
857+
const ret = wasm.wasmvm_propose_run_completion_success(this.__wbg_ptr, handle, ptr0, len0);
846858
if (ret[1]) {
847859
throw takeFromExternrefTable0(ret[0]);
848860
}
@@ -889,7 +901,9 @@ export class WasmVM {
889901
* @param {Uint8Array} buffer
890902
*/
891903
sys_write_output_success(buffer) {
892-
const ret = wasm.wasmvm_sys_write_output_success(this.__wbg_ptr, buffer);
904+
const ptr0 = passArray8ToWasm0(buffer, wasm.__wbindgen_malloc);
905+
const len0 = WASM_VECTOR_LEN;
906+
const ret = wasm.wasmvm_sys_write_output_success(this.__wbg_ptr, ptr0, len0);
893907
if (ret[1]) {
894908
throw takeFromExternrefTable0(ret[0]);
895909
}

packages/restate-sdk-cloudflare-workers/patches/vm/sdk_shared_core_wasm_bindings_bg.wasm.d.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,25 @@ export const wasmvm_take_notification: (a: number, b: number) => [number, number
2727
export const wasmvm_sys_input: (a: number) => [number, number, number];
2828
export const wasmvm_sys_get_state: (a: number, b: number, c: number) => [number, number, number];
2929
export const wasmvm_sys_get_state_keys: (a: number) => [number, number, number];
30-
export const wasmvm_sys_set_state: (a: number, b: number, c: number, d: any) => [number, number];
30+
export const wasmvm_sys_set_state: (a: number, b: number, c: number, d: number, e: number) => [number, number];
3131
export const wasmvm_sys_clear_state: (a: number, b: number, c: number) => [number, number];
3232
export const wasmvm_sys_clear_all_state: (a: number) => [number, number];
3333
export const wasmvm_sys_sleep: (a: number, b: bigint) => [number, number, number];
34-
export const wasmvm_sys_call: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number) => [number, number, number];
35-
export const wasmvm_sys_send: (a: number, b: number, c: number, d: number, e: number, f: any, g: number, h: number, i: number, j: number, k: number, l: bigint) => [number, number, number];
34+
export const wasmvm_sys_call: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number) => [number, number, number];
35+
export const wasmvm_sys_send: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: bigint) => [number, number, number];
3636
export const wasmvm_sys_awakeable: (a: number) => [number, number, number];
37-
export const wasmvm_sys_complete_awakeable_success: (a: number, b: number, c: number, d: any) => [number, number];
37+
export const wasmvm_sys_complete_awakeable_success: (a: number, b: number, c: number, d: number, e: number) => [number, number];
3838
export const wasmvm_sys_complete_awakeable_failure: (a: number, b: number, c: number, d: any) => [number, number];
3939
export const wasmvm_sys_get_promise: (a: number, b: number, c: number) => [number, number, number];
4040
export const wasmvm_sys_peek_promise: (a: number, b: number, c: number) => [number, number, number];
41-
export const wasmvm_sys_complete_promise_success: (a: number, b: number, c: number, d: any) => [number, number, number];
41+
export const wasmvm_sys_complete_promise_success: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
4242
export const wasmvm_sys_complete_promise_failure: (a: number, b: number, c: number, d: any) => [number, number, number];
4343
export const wasmvm_sys_run: (a: number, b: number, c: number) => [number, number, number];
44-
export const wasmvm_propose_run_completion_success: (a: number, b: number, c: any) => [number, number];
44+
export const wasmvm_propose_run_completion_success: (a: number, b: number, c: number, d: number) => [number, number];
4545
export const wasmvm_propose_run_completion_failure: (a: number, b: number, c: any) => [number, number];
4646
export const wasmvm_propose_run_completion_failure_transient: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint, h: any) => [number, number];
4747
export const wasmvm_sys_cancel_invocation: (a: number, b: number, c: number) => [number, number];
48-
export const wasmvm_sys_write_output_success: (a: number, b: any) => [number, number];
48+
export const wasmvm_sys_write_output_success: (a: number, b: number, c: number) => [number, number];
4949
export const wasmvm_sys_write_output_failure: (a: number, b: any) => [number, number];
5050
export const wasmvm_sys_end: (a: number) => [number, number];
5151
export const wasmvm_is_processing: (a: number) => number;

packages/restate-sdk/src/endpoint/handlers/vm/sdk_shared_core_wasm_bindings.js

Lines changed: 46 additions & 17 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sdk-shared-core-wasm-bindings/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ console_error_panic_hook = { version = "0.1.7", optional = true }
1717
serde = { version = "1.0.210", features = ["derive"] }
1818
serde-wasm-bindgen = "0.6.5"
1919
tsify = { version = "0.4.5", default-features = false, features = ["js"] }
20-
js-sys = "0.3.70"
20+
js-sys = "0.3.77"
2121
serde_bytes = "0.11.15"
2222
tracing = "0.1.40"
2323
tracing-subscriber = { version = "0.3.18", default-features = false, features = ["fmt", "std"] }

sdk-shared-core-wasm-bindings/src/lib.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
use js_sys::Uint8Array;
21
use restate_sdk_shared_core::{
32
CallHandle, CoreVM, DoProgressResponse, Error, Header, HeaderMap, IdentityVerifier, Input,
43
NonEmptyValue, ResponseHead, RetryPolicy, RunExitResult, SendHandle, SuspendedOrVMError,
@@ -9,6 +8,7 @@ use std::cmp;
98
use std::convert::{Infallible, Into};
109
use std::io::Write;
1110
use std::time::Duration;
11+
use js_sys::Uint8Array;
1212
use tracing::metadata::LevelFilter;
1313
use tracing::{Dispatch, Level, Subscriber};
1414
use tracing_subscriber::fmt::format::FmtSpan;
@@ -504,12 +504,12 @@ impl WasmVM {
504504
pub fn sys_set_state(
505505
&mut self,
506506
key: String,
507-
buffer: js_sys::Uint8Array,
507+
buffer: Vec<u8>,
508508
) -> Result<(), WasmFailure> {
509509
use_log_dispatcher!(self, |vm| CoreVM::sys_state_set(
510510
vm,
511511
key,
512-
buffer.to_vec().into()
512+
buffer.into()
513513
))
514514
.map_err(Into::into)
515515
}
@@ -537,7 +537,7 @@ impl WasmVM {
537537
&mut self,
538538
service: String,
539539
handler: String,
540-
buffer: js_sys::Uint8Array,
540+
buffer: Vec<u8>,
541541
key: Option<String>,
542542
headers: Vec<WasmHeader>,
543543
) -> Result<WasmCallHandle, WasmFailure> {
@@ -561,7 +561,7 @@ impl WasmVM {
561561
&mut self,
562562
service: String,
563563
handler: String,
564-
buffer: Uint8Array,
564+
buffer: Vec<u8>,
565565
key: Option<String>,
566566
headers: Vec<WasmHeader>,
567567
delay: Option<u64>,
@@ -594,7 +594,7 @@ impl WasmVM {
594594
pub fn sys_complete_awakeable_success(
595595
&mut self,
596596
id: String,
597-
buffer: Uint8Array,
597+
buffer: Vec<u8>,
598598
) -> Result<(), WasmFailure> {
599599
use_log_dispatcher!(self, |vm| CoreVM::sys_complete_awakeable(
600600
vm,
@@ -632,7 +632,7 @@ impl WasmVM {
632632
pub fn sys_complete_promise_success(
633633
&mut self,
634634
key: String,
635-
buffer: Uint8Array,
635+
buffer: Vec<u8>,
636636
) -> Result<WasmNotificationHandle, WasmFailure> {
637637
use_log_dispatcher!(self, |vm| CoreVM::sys_complete_promise(
638638
vm,
@@ -666,7 +666,7 @@ impl WasmVM {
666666
pub fn propose_run_completion_success(
667667
&mut self,
668668
handle: WasmNotificationHandle,
669-
buffer: Uint8Array,
669+
buffer: Vec<u8>,
670670
) -> Result<(), WasmFailure> {
671671
use_log_dispatcher!(self, |vm| CoreVM::propose_run_completion(
672672
vm,
@@ -726,7 +726,7 @@ impl WasmVM {
726726

727727
pub fn sys_write_output_success(
728728
&mut self,
729-
buffer: js_sys::Uint8Array,
729+
buffer: Vec<u8>,
730730
) -> Result<(), WasmFailure> {
731731
use_log_dispatcher!(self, |vm| CoreVM::sys_write_output(
732732
vm,

0 commit comments

Comments
 (0)