- proxy-wasm-go-sdk VS envoy-preflight
- proxy-wasm-go-sdk VS spec
- proxy-wasm-go-sdk VS proxy-wasm-zig-sdk
- proxy-wasm-go-sdk VS proxy-wasm-rust-sdk
- proxy-wasm-go-sdk VS proxy-runtime
- proxy-wasm-go-sdk VS proxy-wasm-cpp-sdk
- proxy-wasm-go-sdk VS nottinygc
- proxy-wasm-go-sdk VS ngx_wasm_module
- proxy-wasm-go-sdk VS apisix
- proxy-wasm-go-sdk VS proximal
Proxy-wasm-go-sdk Alternatives
Similar projects and alternatives to proxy-wasm-go-sdk
-
TinyGo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
-
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.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
proximal
WebAssembly dev environment for Envoy Proxy. Iterate on your HTTP/TCP middleware in seconds! (by apoxy-dev)
proxy-wasm-go-sdk reviews and mentions
-
A "Tiny" APISIX Plugin
// 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
Go (TinyGo) SDK
Stats
tetratelabs/proxy-wasm-go-sdk is an open source project licensed under Apache License 2.0 which is an OSI approved license.
The primary programming language of proxy-wasm-go-sdk is Go.
Popular Comparisons
Sponsored