Skip to content

Changelog

The full, version-by-version changelog lives in the repository root:

CHANGELOG.md

That file follows Keep a Changelog format and adheres to Semantic Versioning. Each release entry lists Added, Changed, Fixed, and Removed items.


The table below summarizes what each phase of Dwaar’s development delivered. These correspond to the progressive build plan in the issue tracker.

PhaseNameKey Deliverables
0–1FoundationCargo workspace, CI, BSL-1.1 license, Pingora integration, ProxyHttp engine, graceful shutdown
2Route Table & ConfigArcSwap route table, Dwaarfile tokenizer and parser, hot-reload, TLS/header/redirect directives
3TLS & HTTPSSNI cert store, automatic HTTPS redirect, ACME Let’s Encrypt (HTTP-01), certificate watcher
4Request LoggingStructured JSON logs (22 fields), batch writer, log rotation
5Admin APIREST admin service (/routes, /certs, /reload, /metrics), Unix domain socket listener, bearer token auth
6AnalyticsJS beacon injection, HyperLogLog visitor counting, Top-K pages, TDigest Web Vitals, per-domain aggregation
7Bot & Rate LimitingRegexSet bot detection, sliding-window rate limiter, Under Attack mode
8Docker IntegrationDocker label discovery, deploy agent
9GeoIPMaxMind mmdb lookup, country field in request logs
10Compressiongzip / brotli / zstd response compression plugin with automatic content negotiation
11Plugin SystemDwaarPlugin trait, PluginChain with priority sorting, basicauth, security headers plugins
12CLI Polishroutes / certs / reload / upgrade subcommands, PID management
13PerformanceCriterion benchmarks, stress tests, jemalloc allocator, CompactString, sonic-rs JSON
14Caddy Directive Parityhandle, handle_path, route, respond, rewrite, uri, error, abort, method, request_body, try_files, forward_auth, named matchers
15Full Caddyfile RuntimeTemplate engine, VarRegistry, 13 typed directives, parser modularization, multi-worker fork, feature toggles, PGO build
16Remaining GapsTokenizer fixes, handle_errors, per-site log output, block-form reverse_proxy with load balancing and health checks, bind, intercept / copy_response
17Production ViabilityWebSocket proxy, body size limits, IP allowlist/blocklist (CIDR trie), Prometheus metrics, HTTP cache (pingora-cache), gRPC transparent proxy
18Competitive ParityConnection draining, slow-loris timeouts, mTLS upstream, QUIC scaffold, Alt-Svc header
19DifferentiationDNS-01 ACME wildcard certificates (Cloudflare provider), scale-to-zero wake
20–22Kubernetes Ingressdwaar-ingress crate, K8s reflector watchers, Ingress-to-route translator, TLS secrets, leader election, annotations, Helm chart, integration tests
23–24WASM RuntimeWasmtime component model, WIT interface, host functions, resource limits (fuel / memory / timeout), module caching, auto-disable on repeated traps
25HTTP/3 Full Flowh3 request parsing, proxy bridge, connection lifecycle, 0-RTT, flow control
26Observability PipelineW3C traceparent propagation, process metrics, rate/cache Prometheus counters, log socket and file rotation, AnalyticsSink trait, upstream error body capture
27H3 Memory & PerformanceConnection-owned BufferedConn (zero per-request alloc), H2 upstream multiplexing (transport h2), zero-copy body streaming, TCP_NODELAY, jemalloc heap profiling feature, chunked/decompressor buffer caps

| 27 | Hot Reload + H3 Completion | Streaming H3 → upstream bridge, upstream connection pool, hot reload for health-check pools, ACME domain coverage, and cache sizing |


Dwaar follows Semantic Versioning:

  • Patch releases fix bugs without changing configuration semantics.
  • Minor releases add features in a backward-compatible way.
  • Major releases may change the Dwaarfile format or remove deprecated directives. Migration guides are published in docs/src/migration/.