@@ -4,6 +4,10 @@ A Varnish VMOD that executes WebAssembly modules for HTTP request processing at
44
55[ ![ License: CC BY-NC 4.0] ( https://img.shields.io/badge/license-CC%20BY--NC%204.0-lightgrey.svg )] ( LICENSE )
66[ ![ CI] ( https://github.com/RamazanKara/vmod-wasm/actions/workflows/ci.yml/badge.svg )] ( https://github.com/RamazanKara/vmod-wasm/actions )
7+ ![ Wasmtime] ( https://img.shields.io/badge/Wasmtime-v44.0.0-blue )
8+ ![ Varnish] ( https://img.shields.io/badge/Varnish-8.0%2B-purple )
9+ ![ Proxy-Wasm ABI] ( https://img.shields.io/badge/Proxy--Wasm%20ABI-v0.2.1-green )
10+
711
812## Overview
913
@@ -134,7 +138,17 @@ impl HttpContext for MyFilter {
134138impl Context for MyFilter {}
135139```
136140
137- See [ ` examples/ ` ] ( examples/ ) for complete examples.
141+ See [ ` examples/ ` ] ( examples/ ) for complete examples, including the
142+ [ edge-security-filter] ( examples/edge-security-filter/ ) — a production-grade
143+ module demonstrating rate limiting, bot detection, HTTP callouts, and metrics.
144+
145+ ## Getting Started
146+
147+ New to vmod-wasm? Start here:
148+
149+ 1 . [ Development Guide] ( docs/DEVELOPMENT.md ) — Write, build, test, and deploy your first Proxy-Wasm module
150+ 2 . [ Configuration Reference] ( docs/CONFIGURATION.md ) — All VCL functions and recommended settings
151+ 3 . [ Architecture] ( docs/ARCHITECTURE.md ) — How vmod-wasm works internally
138152
139153## Building
140154
@@ -164,26 +178,48 @@ docker run --rm vmod-wasm-dev make check
164178## Architecture
165179
166180```
167- VCL -> vmod_wasm.c -> wasm_engine.c -> Wasmtime -> .wasm module
168- |
169- host_functions.c (env + WASI)
170- proxy_wasm.c (Proxy-Wasm ABI)
171- proxy_wasm_http.c (HTTP callouts)
172- store_pool.c (instance pooling)
173- http_pool.c (connection pooling)
174- vdp_wasm.c (response body streaming)
181+ ┌────────────────┐
182+ │ VCL Config │
183+ └───────┬────────┘
184+ │
185+ ┌────────────▼────────────┐
186+ │ vmod_wasm.c │
187+ │ (VCL function layer) │
188+ └────────────┬────────────┘
189+ │
190+ ┌────────────────────┼───────────────────┐
191+ │ │ │
192+ ┌─────────▼──────┐ ┌─────────▼────────┐ ┌──────▼────────┐
193+ │ wasm_engine.c │ │ proxy_wasm.c │ │ host_funcs.c │
194+ │ (Wasmtime) │ │ (ABI lifecycle) │ │ (env + WASI) │
195+ └─────────┬──────┘ └─────────┬────────┘ └───────────────┘
196+ │ │
197+ ┌─────────▼──────┐ ┌─────────▼────────┐
198+ │ store_pool.c │ │ proxy_wasm_ │
199+ │ (instance pool)│ │ http/shared/ │
200+ └────────────────┘ │ headers/metrics │
201+ └─────────┬────────┘
202+ │
203+ ┌────────────▼────────────┐
204+ │ http_pool.c │
205+ │ (connection pool + │
206+ │ circuit breaker) │
207+ └────────────────────────┘
175208```
176209
177210## Documentation
178211
212+ - [ Architecture] ( docs/ARCHITECTURE.md ) — Detailed component design and request lifecycle
213+ - [ Development Guide] ( docs/DEVELOPMENT.md ) — Writing your first Proxy-Wasm module
214+ - [ Configuration Reference] ( docs/CONFIGURATION.md ) — All VCL functions with parameters
179215- [ Proxy-Wasm Compatibility] ( docs/COMPATIBILITY.md ) — ABI coverage matrix
180- - [ Security Model] ( docs/SECURITY.md ) — isolation , threat model, controls
181- - [ Production Guide] ( docs/PRODUCTION.md ) — deployment, monitoring, tuning
216+ - [ Security Model] ( docs/SECURITY.md ) — Isolation , threat model, supply chain security
217+ - [ Production Guide] ( docs/PRODUCTION.md ) — Deployment, hot-reload, monitoring, capacity planning
182218
183219## License
184220
185221CC BY-NC 4.0 — see [ LICENSE] ( LICENSE ) .
186222
187223## Contributing
188224
189- Contributions welcome.
225+ Contributions welcome. See [ CONTRIBUTING.md ] ( CONTRIBUTING.md ) for guidelines.
0 commit comments