proxy-wasm-go-sdk VS ngx_wasm_module

Compare proxy-wasm-go-sdk vs ngx_wasm_module and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
proxy-wasm-go-sdk ngx_wasm_module
2 1
663 68
1.4% -
5.9 9.4
3 days ago about 9 hours ago
Go C
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

proxy-wasm-go-sdk

Posts with mentions or reviews of proxy-wasm-go-sdk. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-11-27.
  • A "Tiny" APISIX Plugin
    4 projects | dev.to | 27 Nov 2023
    // references: // https://github.com/tetratelabs/proxy-wasm-go-sdk/tree/main/examples // https://github.com/apache/apisix/blob/master/t/wasm/ package main import ( "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm" "github.com/tetratelabs/proxy-wasm-go-sdk/proxywasm/types" "github.com/valyala/fastjson" ) func main() { proxywasm.SetVMContext(&vmContext{}) } // each plugin has its own VMContext. // it is responsible for creating multiple PluginContexts for each route. type vmContext struct { types.DefaultVMContext } // each route has its own PluginContext. // it corresponds to one instance of the plugin. func (*vmContext) NewPluginContext(contextID uint32) types.PluginContext { return &pluginContext{} } type header struct { Name string Value string } type pluginContext struct { types.DefaultPluginContext Headers []header } func (ctx *pluginContext) OnPluginStart(pluginConfigurationSize int) types.OnPluginStartStatus { data, err := proxywasm.GetPluginConfiguration() if err != nil { proxywasm.LogErrorf("error reading plugin configuration: %v", err) return types.OnPluginStartStatusFailed } var p fastjson.Parser v, err := p.ParseBytes(data) if err != nil { proxywasm.LogErrorf("error decoding plugin configuration: %v", err) return types.OnPluginStartStatusFailed } headers := v.GetArray("headers") ctx.Headers = make([]header, len(headers)) for i, hdr := range headers { ctx.Headers[i] = header{ Name: string(hdr.GetStringBytes("name")), Value: string(hdr.GetStringBytes("value")), } } return types.OnPluginStartStatusOK } // each HTTP request to a route has its own HTTPContext func (ctx *pluginContext) NewHttpContext(contextID uint32) types.HttpContext { return &httpContext{parent: ctx} } type httpContext struct { types.DefaultHttpContext parent *pluginContext } func (ctx *httpContext) OnHttpResponseHeaders(numHeaders int, endOfStream bool) types.Action { plugin := ctx.parent for _, hdr := range plugin.Headers { proxywasm.ReplaceHttpResponseHeader(hdr.Name, hdr.Value) } return types.ActionContinue }
  • Unlocking Istio's Versatility: A Guide to WASM Plugins in Kubernetes
    5 projects | dev.to | 24 Jul 2023
    Go (TinyGo) SDK

ngx_wasm_module

Posts with mentions or reviews of ngx_wasm_module. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-16.
  • Nginx Development Guide
    6 projects | news.ycombinator.com | 16 Aug 2023
    Proxy WASM appears to be supported thanks to a project from Kong: https://github.com/Kong/ngx_wasm_module

    I haven't tried it yet, but it looks promising.

What are some alternatives?

When comparing proxy-wasm-go-sdk and ngx_wasm_module you can also consider the following projects:

envoy-preflight - A wrapper for applications to help with running envoy as a sidecar

ngx-rust - Rust binding for NGINX

spec - WebAssembly for Proxies (ABI specification)

njs-examples - NGINX JavaScript examples

proxy-wasm-zig-sdk - WebAssembly for Proxies (Zig SDK)

extism - The framework for building with WebAssembly (wasm). Easily load wasm modules, move data, call functions, and build extensible apps.

proxy-wasm-rust-sdk - WebAssembly for Proxies (Rust SDK)

njs-acme - Nginx NJS module runtime to work with ACME providers like Let's Encrypt for automated no-reload TLS certificate issue/renewal.

proxy-runtime

lua-nginx-module - Embed the Power of Lua into NGINX HTTP servers

proxy-wasm-cpp-sdk - WebAssembly for Proxies (C++ SDK)

nottinygc - Higher-performance allocator for TinyGo WASI apps