Skip to content

Commit e01c5f2

Browse files
authored
chore(lib) re-scope the FFI binding to 'resty.wasmx'
Instead of `resty.wasm` for forward-compatibility with potential other `resty.wasm` libraries.
1 parent a58b8b4 commit e01c5f2

13 files changed

+132
-132
lines changed

docs/adr/003-proxy-wasm-gateway-plugin.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ workflow when I wish to configure proxy-wasm filters on a Service:"
6868

6969
### Implementation Steps
7070

71-
1. ngx_wasm_module: Implement the lua-resty-wasm FFI wrapper library.
71+
1. ngx_wasm_module: Implement the lua-resty-wasmx FFI wrapper library.
7272
2. Gateway: compile with ngx_wasm_module.
7373
3. Gateway: add proxy-wasm configuration properties and auto-generate `wasm{}`
7474
section in the Nginx configuration template.
75-
4. Gateway: implement a Lua plugin leveraging lua-resty-wasm to enter the filter
76-
chain during a request.
75+
4. Gateway: implement a Lua plugin leveraging lua-resty-wasmx to enter the
76+
filter chain during a request.
7777
- declaratively-configured proxy-wasm chains must be created from within
7878
`init_worker` when available (e.g. background ticks).
7979
5. Test cases, behavior checks, edge-cases and bug squashing.
File renamed without changes.

lib/resty/http/proxy_wasm.lua renamed to lib/resty/wasmx/proxy_wasm.lua

+8-8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
-- vim:set ts=4 sw=4 sts=4 et:
22

33
local ffi = require "ffi"
4-
local wasm = require "resty.wasm"
4+
local wasmx = require "resty.wasmx"
55

66

77
local C = ffi.C
@@ -11,12 +11,12 @@ local type = type
1111
local ffi_gc = ffi.gc
1212
local ffi_new = ffi.new
1313
local ffi_str = ffi.string
14-
local get_request = wasm.get_request
15-
local get_err_ptr = wasm.get_err_ptr
16-
local FFI_OK = wasm.FFI_OK
17-
local FFI_ERROR = wasm.FFI_ERROR
18-
local FFI_ABORT = wasm.FFI_ABORT
19-
local FFI_DECLINED = wasm.FFI_DECLINED
14+
local get_request = wasmx.get_request
15+
local get_err_ptr = wasmx.get_err_ptr
16+
local FFI_OK = wasmx.FFI_OK
17+
local FFI_ERROR = wasmx.FFI_ERROR
18+
local FFI_ABORT = wasmx.FFI_ABORT
19+
local FFI_DECLINED = wasmx.FFI_DECLINED
2020
local NOT_FOUND = "missing"
2121
local ERROR = "error"
2222

@@ -65,7 +65,7 @@ function _M.new(filters)
6565
error("filters must be a table", 2)
6666
end
6767

68-
local vm = wasm.get_main_vm()
68+
local vm = wasmx.get_main_vm()
6969
if vm == nil then
7070
error("no wasm vm", 2)
7171
end

t/04-openresty/ffi/001-get_main_vm.t

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ __DATA__
1616
--- config
1717
location /t {
1818
content_by_lua_block {
19-
local wasm = require "resty.wasm"
20-
local vm = wasm.get_main_vm()
19+
local wasmx = require "resty.wasmx"
20+
local vm = wasmx.get_main_vm()
2121
2222
ngx.say("vm: ", tostring(vm))
2323
}
@@ -36,8 +36,8 @@ vm: cdata<struct ngx_wavm_t *>: NULL
3636
--- config
3737
location /t {
3838
content_by_lua_block {
39-
local wasm = require "resty.wasm"
40-
local vm = wasm.get_main_vm()
39+
local wasmx = require "resty.wasmx"
40+
local vm = wasmx.get_main_vm()
4141
4242
ngx.say("vm: ", tostring(vm))
4343
}

t/04-openresty/ffi/100-proxy_wasm_new.t

+5-5
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ __DATA__
1717
=== TEST 1: new() - no VM
1818
--- http_config
1919
init_by_lua_block {
20-
local proxy_wasm = require "resty.http.proxy_wasm"
20+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
2121
proxy_wasm.new({})
2222
}
2323
--- error_log
@@ -32,7 +32,7 @@ no wasm vm
3232
=== TEST 2: new() - bad argument
3333
--- http_config
3434
init_by_lua_block {
35-
local proxy_wasm = require "resty.http.proxy_wasm"
35+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
3636
proxy_wasm.new()
3737
}
3838
--- error_log
@@ -48,7 +48,7 @@ filters must be a table
4848
--- wasm_modules: on_phases
4949
--- http_config
5050
init_worker_by_lua_block {
51-
local proxy_wasm = require "resty.http.proxy_wasm"
51+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
5252
local filters = {
5353
{ name = "on_tick" },
5454
}
@@ -72,7 +72,7 @@ qr/\[error\] .*? no "on_tick" module defined/
7272
--- config
7373
location /t {
7474
access_by_lua_block {
75-
local proxy_wasm = require "resty.http.proxy_wasm"
75+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
7676
local filters = {
7777
{ name = "on_phases", config = "a" },
7878
{ name = "hostcalls", config = "b" },
@@ -101,7 +101,7 @@ plan: cdata<struct ngx_wasm_ops_plan_t \*>: 0x[0-9a-f]+
101101
--- config
102102
location /t {
103103
access_by_lua_block {
104-
local proxy_wasm = require "resty.http.proxy_wasm"
104+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
105105
local filters = {
106106
{ name = "on_phases", config = "a" },
107107
{ name = "hostcalls", config = "b" },

t/04-openresty/ffi/101-proxy_wasm_load.t

+5-5
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ __DATA__
1515
=== TEST 1: load() - bad argument
1616
--- http_config
1717
init_by_lua_block {
18-
local proxy_wasm = require "resty.http.proxy_wasm"
18+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
1919
proxy_wasm.load({})
2020
}
2121
--- error_log eval
@@ -31,7 +31,7 @@ qr/\[error\] .*? plan should be a cdata object/
3131
--- wasm_modules: ngx_rust_tests
3232
--- http_config
3333
init_worker_by_lua_block {
34-
local proxy_wasm = require "resty.http.proxy_wasm"
34+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
3535
local filters = {
3636
{ name = "ngx_rust_tests" },
3737
}
@@ -68,7 +68,7 @@ the wasm{} block postconfig handler. It feels unnecessary at the moment.
6868
--- wasm_modules: on_tick
6969
--- http_config
7070
init_by_lua_block {
71-
local proxy_wasm = require "resty.http.proxy_wasm"
71+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
7272
local filters = {
7373
{ name = "on_tick" },
7474
}
@@ -89,7 +89,7 @@ qr/\[error\] .*? load cannot be called from 'init' phase/
8989
--- wasm_modules: on_phases
9090
--- http_config
9191
init_worker_by_lua_block {
92-
local proxy_wasm = require "resty.http.proxy_wasm"
92+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
9393
local filters = {
9494
{ name = "on_phases" },
9595
}
@@ -119,7 +119,7 @@ qr/#0 on_configure, config_size: 0.*/
119119
--- wasm_modules: on_tick
120120
--- http_config
121121
init_worker_by_lua_block {
122-
local proxy_wasm = require "resty.http.proxy_wasm"
122+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
123123
local filters = {
124124
{ name = "on_tick" },
125125
}

t/04-openresty/ffi/102-proxy_wasm_start.t

+6-6
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ __DATA__
1717
--- config
1818
location /t {
1919
rewrite_by_lua_block {
20-
local proxy_wasm = require "resty.http.proxy_wasm"
20+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
2121
2222
local ok, err = proxy_wasm.start()
2323
if not ok then
@@ -41,7 +41,7 @@ plan not loaded and attached
4141
--- config
4242
location /t {
4343
rewrite_by_lua_block {
44-
local proxy_wasm = require "resty.http.proxy_wasm"
44+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
4545
local filters = {
4646
{ name = "on_phases" },
4747
}
@@ -73,7 +73,7 @@ plan not loaded and attached
7373
--- config
7474
location /t {
7575
rewrite_by_lua_block {
76-
local proxy_wasm = require "resty.http.proxy_wasm"
76+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
7777
local filters = {
7878
{ name = "on_phases" },
7979
}
@@ -110,7 +110,7 @@ plan not loaded and attached
110110
--- config
111111
location /t {
112112
rewrite_by_lua_block {
113-
local proxy_wasm = require "resty.http.proxy_wasm"
113+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
114114
local filters = {
115115
{ name = "on_phases" },
116116
}
@@ -164,7 +164,7 @@ qr/^#0 on_vm_start[^#]*
164164
--- config
165165
location /t {
166166
access_by_lua_block {
167-
local proxy_wasm = require "resty.http.proxy_wasm"
167+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
168168
local filters = {
169169
{ name = "on_phases" },
170170
}
@@ -217,7 +217,7 @@ qr/^#0 on_vm_start[^#]*
217217
--- wasm_modules: on_phases
218218
--- http_config
219219
init_worker_by_lua_block {
220-
local proxy_wasm = require "resty.http.proxy_wasm"
220+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
221221
222222
assert(proxy_wasm.start())
223223
}

t/04-openresty/ffi/103-proxy_wasm_attach.t

+20-20
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ __DATA__
1616
--- config
1717
location /t {
1818
rewrite_by_lua_block {
19-
local proxy_wasm = require "resty.http.proxy_wasm"
19+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
2020
2121
local pok, perr = pcall(proxy_wasm.attach, {})
2222
if not pok then
@@ -40,7 +40,7 @@ plan must be a cdata object
4040
--- config
4141
location /t {
4242
rewrite_by_lua_block {
43-
local proxy_wasm = require "resty.http.proxy_wasm"
43+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
4444
local filters = {
4545
{ name = "on_phases" },
4646
}
@@ -72,7 +72,7 @@ plan not loaded
7272
--- config
7373
location /t {
7474
rewrite_by_lua_block {
75-
local proxy_wasm = require "resty.http.proxy_wasm"
75+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
7676
local filters = {
7777
{ name = "on_phases" },
7878
}
@@ -117,7 +117,7 @@ qr/\[error\] .*? previous plan already attached/
117117
--- config
118118
location /t {
119119
rewrite_by_lua_block {
120-
local proxy_wasm = require "resty.http.proxy_wasm"
120+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
121121
local filters = {
122122
{ name = "on_phases" },
123123
}
@@ -167,7 +167,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
167167
--- wasm_modules: on_phases
168168
--- http_config
169169
init_worker_by_lua_block {
170-
local proxy_wasm = require "resty.http.proxy_wasm"
170+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
171171
local filters = {
172172
{ name = "on_phases" },
173173
}
@@ -180,7 +180,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
180180
--- config
181181
location /t {
182182
rewrite_by_lua_block {
183-
local proxy_wasm = require "resty.http.proxy_wasm"
183+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
184184
local c_plan = _G.c_plan
185185
186186
local ok, err = proxy_wasm.attach(c_plan)
@@ -218,7 +218,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
218218
--- wasm_modules: on_phases
219219
--- http_config
220220
init_worker_by_lua_block {
221-
local proxy_wasm = require "resty.http.proxy_wasm"
221+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
222222
local filters = {
223223
{ name = "on_phases" },
224224
}
@@ -231,7 +231,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
231231
--- config
232232
location /t {
233233
access_by_lua_block {
234-
local proxy_wasm = require "resty.http.proxy_wasm"
234+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
235235
local c_plan = _G.c_plan
236236
237237
local ok, err = proxy_wasm.attach(c_plan)
@@ -269,7 +269,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
269269
--- wasm_modules: hostcalls
270270
--- http_config
271271
init_worker_by_lua_block {
272-
local proxy_wasm = require "resty.http.proxy_wasm"
272+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
273273
local filters = {
274274
{ name = "hostcalls", config = "test=/t/trap" },
275275
}
@@ -282,7 +282,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
282282
--- config
283283
location /t {
284284
rewrite_by_lua_block {
285-
local proxy_wasm = require "resty.http.proxy_wasm"
285+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
286286
local c_plan = _G.c_plan
287287
288288
local ok, err = proxy_wasm.attach(c_plan)
@@ -315,7 +315,7 @@ qr/^[^#]*#0 on_vm_start[^#]*
315315
--- config
316316
location /t {
317317
rewrite_by_lua_block {
318-
local proxy_wasm = require "resty.http.proxy_wasm"
318+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
319319
local filters = {
320320
{ name = "on_phases" },
321321
}
@@ -342,7 +342,7 @@ qr/\[debug\] .*? wasm freeing plan/
342342
--- wasm_modules: on_phases
343343
--- http_config
344344
init_worker_by_lua_block {
345-
local proxy_wasm = require "resty.http.proxy_wasm"
345+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
346346
local filters = {
347347
{ name = "on_phases" },
348348
}
@@ -372,7 +372,7 @@ qr/attach must be called from 'rewrite' or 'access' phase/
372372
--- config
373373
location /t {
374374
rewrite_by_lua_block {
375-
local proxy_wasm = require "resty.http.proxy_wasm"
375+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
376376
local filters = {
377377
{ name = "on_phases" },
378378
}
@@ -399,7 +399,7 @@ opts must be a table
399399
--- config
400400
location /t {
401401
rewrite_by_lua_block {
402-
local proxy_wasm = require "resty.http.proxy_wasm"
402+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
403403
local filters = {
404404
{ name = "on_phases" },
405405
}
@@ -427,7 +427,7 @@ bad opts.isolation value: -1
427427
--- wasm_modules: hostcalls
428428
--- http_config
429429
init_worker_by_lua_block {
430-
local proxy_wasm = require "resty.http.proxy_wasm"
430+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
431431
local filters = {
432432
{ name = "hostcalls" },
433433
}
@@ -440,7 +440,7 @@ bad opts.isolation value: -1
440440
--- config
441441
location /t {
442442
rewrite_by_lua_block {
443-
local proxy_wasm = require "resty.http.proxy_wasm"
443+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
444444
assert(proxy_wasm.attach(_G.c_plan))
445445
assert(proxy_wasm.start())
446446
ngx.say("ok")
@@ -482,7 +482,7 @@ qr/\A\*\d+ proxy_wasm initializing filter chain \(nfilters: 1, isolation: 1\)[^#
482482
--- wasm_modules: hostcalls
483483
--- http_config
484484
init_worker_by_lua_block {
485-
local proxy_wasm = require "resty.http.proxy_wasm"
485+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
486486
local filters = {
487487
{ name = "hostcalls" },
488488
}
@@ -497,7 +497,7 @@ qr/\A\*\d+ proxy_wasm initializing filter chain \(nfilters: 1, isolation: 1\)[^#
497497
498498
location /t {
499499
rewrite_by_lua_block {
500-
local proxy_wasm = require "resty.http.proxy_wasm"
500+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
501501
assert(proxy_wasm.attach(_G.c_plan))
502502
assert(proxy_wasm.start())
503503
ngx.say("ok")
@@ -545,7 +545,7 @@ qr/\A\*\d+ proxy_wasm initializing filter chain \(nfilters: 1, isolation: 2\)[^#
545545
--- wasm_modules: hostcalls
546546
--- http_config
547547
init_worker_by_lua_block {
548-
local proxy_wasm = require "resty.http.proxy_wasm"
548+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
549549
local filters = {
550550
{ name = "hostcalls" },
551551
}
@@ -560,7 +560,7 @@ qr/\A\*\d+ proxy_wasm initializing filter chain \(nfilters: 1, isolation: 2\)[^#
560560
561561
location /t {
562562
rewrite_by_lua_block {
563-
local proxy_wasm = require "resty.http.proxy_wasm"
563+
local proxy_wasm = require "resty.wasmx.proxy_wasm"
564564
assert(proxy_wasm.attach(_G.c_plan, {
565565
isolation = proxy_wasm.isolations.NONE
566566
}))

0 commit comments

Comments
 (0)