From 58b87197c1af6cf9b0e65031e107c3b55d3349a7 Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Thu, 12 Feb 2026 10:43:27 -0500 Subject: [PATCH 1/5] Combine register and resolve into `proxy_open_shared_queue`. While there, add `proxy_delete_shared_queue`. Signed-off-by: Piotr Sikora --- abi-versions/vNEXT/README.md | 53 ++++++++++++++---------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/abi-versions/vNEXT/README.md b/abi-versions/vNEXT/README.md index 1a0f9be..e085eb9 100644 --- a/abi-versions/vNEXT/README.md +++ b/abi-versions/vNEXT/README.md @@ -1534,43 +1534,20 @@ Returned `status` value is: ### Functions exposed by the host -#### `proxy_register_shared_queue` +#### `proxy_open_shared_queue` * params: - - `i32 (const char *) name_data` - - `i32 (size_t) name_size` + - `i32 (const char *) queue_name_data` + - `i32 (size_t) queue_name_size` + - `i32 (bool) create_if_not_exist` - `i32 (uint32_t *) return_queue_id` * returns: - `i32 (`[`proxy_status_t`]`) status` -Registers shared queue under a name (`name_data`, `name_size`). +Opens named queue (`queue_name_data`, `queue_name_size`). -If the named queue already exists, then it's going to be opened -instead of creating a new empty queue. - -Items can be enqueued/dequeued on the created/opened queue using -[`proxy_enqueue_shared_queue`] and/or [`proxy_dequeue_shared_queue`] -with `return_queue_id`. - -Returned `status` value is: -- `OK` on success. -- `INVALID_MEMORY_ACCESS` when `name_data`, `name_size` - and/or `return_queue_id` point to invalid memory address. - - -#### `proxy_resolve_shared_queue` - -* params: - - `i32 (const char *) vm_id_data` - - `i32 (size_t) vm_id_size` - - `i32 (const char *) name_data` - - `i32 (size_t) name_size` - - `i32 (uint32_t *) return_queue_id` -* returns: - - `i32 (`[`proxy_status_t`]`) status` - -Resolves existing shared queue using the provided VM ID (`vm_id_data`, -`vm_id_size`) and name (`name_data`, `name_size`). +If `create_if_not_exist` is `true` and there is no shared queue with +that name, then it will be created. Items can be enqueued/dequeued on the opened queue using [`proxy_enqueue_shared_queue`] and/or [`proxy_dequeue_shared_queue`] @@ -1622,6 +1599,18 @@ Returned `status` value is: and/or `return_value_size` point to invalid memory address. +#### `proxy_delete_shared_queue` + +* params: + - `i32 (uint32_t) queue_id` +* returns: + - `i32 (`[`proxy_status_t`]`) status` + +Deletes previously created shared queue (`queue_id`). +- `OK` on success. +- `UNKNOWN_RESOURCE_ID` for unknown `queue_id`. + + ### Callbacks exposed by the Wasm module #### `proxy_on_queue_ready` @@ -2185,10 +2174,10 @@ changes to unrelated connections/requests. [`proxy_on_grpc_close`]: #proxy_on_grpc_close [`proxy_set_shared_data`]: #proxy_set_shared_data [`proxy_get_shared_data`]: #proxy_get_shared_data -[`proxy_register_shared_queue`]: #proxy_register_shared_queue -[`proxy_resolve_shared_queue`]: #proxy_resolve_shared_queue +[`proxy_open_shared_queue`]: #proxy_open_shared_queue [`proxy_enqueue_shared_queue`]: #proxy_enqueue_shared_queue [`proxy_dequeue_shared_queue`]: #proxy_dequeue_shared_queue +[`proxy_delete_shared_queue`]: #proxy_delete_shared_queue [`proxy_on_queue_ready`]: #proxy_on_queue_ready [`proxy_define_metric`]: #proxy_define_metric [`proxy_record_metric`]: #proxy_record_metric From 516bc7117cbdfd6d7a4e8961be6de90ce30287ba Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Tue, 11 Aug 2026 04:36:25 -0400 Subject: [PATCH 2/5] review: style. Signed-off-by: Piotr Sikora --- abi-versions/vNEXT/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/abi-versions/vNEXT/README.md b/abi-versions/vNEXT/README.md index e085eb9..d3eeba2 100644 --- a/abi-versions/vNEXT/README.md +++ b/abi-versions/vNEXT/README.md @@ -1547,7 +1547,7 @@ Returned `status` value is: Opens named queue (`queue_name_data`, `queue_name_size`). If `create_if_not_exist` is `true` and there is no shared queue with -that name, then it will be created. +the given name, then it will be created. Items can be enqueued/dequeued on the opened queue using [`proxy_enqueue_shared_queue`] and/or [`proxy_dequeue_shared_queue`] From 690182306d451fca9c275f63683a7a665ed45b7b Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Tue, 11 Aug 2026 05:13:32 -0400 Subject: [PATCH 3/5] review: add `CREATED`. Signed-off-by: Piotr Sikora --- abi-versions/vNEXT/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/abi-versions/vNEXT/README.md b/abi-versions/vNEXT/README.md index d3eeba2..15ecfc7 100644 --- a/abi-versions/vNEXT/README.md +++ b/abi-versions/vNEXT/README.md @@ -1554,7 +1554,8 @@ Items can be enqueued/dequeued on the opened queue using with `return_queue_id`. Returned `status` value is: -- `OK` on success. +- `OK` on success when opening existing queue. +- `CREATED` on success when a queue with the given name was created. - `NOT_FOUND` when the requested queue was not found. - `INVALID_MEMORY_ACCESS` when `vm_id_data`, `vm_id_size`, `name_data`, `name_size` and/or `return_queue_id` point to invalid memory address. @@ -2037,6 +2038,7 @@ changes to unrelated connections/requests. - `INTERNAL_FAILURE` = `10` - `UNIMPLEMENTED` = `12` - `UNKNOWN_RESOURCE_ID` = `13` +- `CREATED` = `14` #### `proxy_action_t` From caf4c5554654373f43546abec1a242eb2bba2dc8 Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Tue, 11 Aug 2026 05:39:38 -0400 Subject: [PATCH 4/5] review: align style with key-value store. Signed-off-by: Piotr Sikora --- abi-versions/vNEXT/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abi-versions/vNEXT/README.md b/abi-versions/vNEXT/README.md index 15ecfc7..78ced7a 100644 --- a/abi-versions/vNEXT/README.md +++ b/abi-versions/vNEXT/README.md @@ -1556,7 +1556,8 @@ with `return_queue_id`. Returned `status` value is: - `OK` on success when opening existing queue. - `CREATED` on success when a queue with the given name was created. -- `NOT_FOUND` when the requested queue was not found. +- `NOT_FOUND` when `create_if_not_exist` is `false` and no queue with + the given name exists. - `INVALID_MEMORY_ACCESS` when `vm_id_data`, `vm_id_size`, `name_data`, `name_size` and/or `return_queue_id` point to invalid memory address. From b358f50011412b9e13a46f237baf6fea0d7195a7 Mon Sep 17 00:00:00 2001 From: Piotr Sikora Date: Tue, 11 Aug 2026 05:42:48 -0400 Subject: [PATCH 5/5] review: style. Signed-off-by: Piotr Sikora --- abi-versions/vNEXT/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abi-versions/vNEXT/README.md b/abi-versions/vNEXT/README.md index 78ced7a..7fc24d0 100644 --- a/abi-versions/vNEXT/README.md +++ b/abi-versions/vNEXT/README.md @@ -1556,8 +1556,8 @@ with `return_queue_id`. Returned `status` value is: - `OK` on success when opening existing queue. - `CREATED` on success when a queue with the given name was created. -- `NOT_FOUND` when `create_if_not_exist` is `false` and no queue with - the given name exists. +- `NOT_FOUND` when `create_if_not_exist` is `false` and no shared queue + with the given name exists. - `INVALID_MEMORY_ACCESS` when `vm_id_data`, `vm_id_size`, `name_data`, `name_size` and/or `return_queue_id` point to invalid memory address.