Skip to main content

Rust Plugin Development Patterns

Status

This guide is planned but not available yet.

Intended Outcome

This page will describe development patterns for building Keymate enforcement plugins in Rust, targeting WASM compilation for high-performance authorization enforcement in Istio and APISIX environments. Topics will include:

  • Setting up a Rust development environment with the proxy-wasm-rust-sdk
  • Implementing the proxy-wasm ABI callbacks (on_http_request_headers, on_http_request_body, on_http_call_response)
  • Building and compiling to wasm32-wasi target
  • Header manipulation and HTTP dispatch patterns in Rust
  • Testing WASM modules with the proxy-wasm test framework
  • Comparing Rust and Go (TinyGo) plugin implementations for performance and developer experience

Current State

The current Keymate APISIX and Istio enforcement plugins use Go with TinyGo for WASM compilation, alongside native Lua implementations. The proxy-wasm specification supports Rust, C++, Go, and AssemblyScript as WASM source languages. Rust-based plugin development patterns are planned for organizations that prefer Rust's memory safety guarantees and performance characteristics.

Why This Page Is a Placeholder

This placeholder keeps the planned guide path visible without implying that the workflow is already supported.