Skip to content

Conduit v0.3.0

Choose a tag to compare

@github-actions github-actions released this 30 May 19:46
· 21 commits to main since this release

What's New in v0.3.0

Auto-TLS (Let's Encrypt)

Conduit now obtains and renews TLS certificates automatically via ACME — no manual certificate management needed. Just add an email address:

{ "port": 443, "tls": { "acme": { "email": "admin@example.com" } } }

Hot Config Reload

Apply configuration changes without restarting the server. Update your conduit.json and run conduit reload — routes, headers, rate limits, auth, and proxy settings take effect immediately.

File Uploads

Accept multipart/form-data uploads with size limits, MIME type filtering, and UUID-based storage — served through a dedicated Axum loopback server:

{ "upload": { "path": "/upload", "dir": "./uploads", "maxFileSizeBytes": 10485760 } }

Browser Hot Reload

Frontend development gets automatic browser refresh when source files change — no build tool or extension needed. Add <script src="/__hot-reload__/client.js"></script> and start editing.

Rhai Middleware Scripting

Write custom request/response logic in Rhai scripts — enforce API keys, rewrite headers, or reject requests based on any condition:

{ "middleware": [{ "type": "script", "path": "./scripts/custom-auth.rhai" }] }

Redis Rate Limiting

Share rate-limit state across multiple Conduit instances using Redis as the token-bucket backend. Falls back to in-memory if Redis is unavailable:

{ "rateLimit": { "windowSecs": 60, "limit": 100, "store": "redis://localhost:6379" } }

Advanced Routing

The new routes array supports matching on path glob, HTTP method, request headers, and query parameters — with separate upstreams per match:

{ "routes": [
  { "match": { "path": "/api/**", "method": ["POST","PUT"] }, "proxy": "http://write:4000" },
  { "match": { "path": "/api/**" }, "proxy": "http://read:4000" }
]}

Path Rewrite

Regex-based URL rewriting applied before forwarding to upstream — strip version prefixes, remap legacy paths, capture groups:

{ "rewrite": [{ "from": "^/v[0-9]+/(.+)$", "to": "/$1" }] }

Upstream Groups

Two-level load balancing: an outer strategy selects a server group (e.g. by region using IP-hash), and an inner strategy distributes within the group (e.g. least-conn).

Pre-compressed Static Files

Serve .br / .gz sidecar files directly without on-the-fly compression — zero CPU overhead for cached assets:

{ "staticOptions": { "preCompressed": true } }

Docker Image on GHCR

Official multi-arch image published to GitHub Container Registry on every release:

docker pull ghcr.io/lopatnov/conduit:latest
docker pull ghcr.io/lopatnov/conduit:0.3.0

Shell Completions & Man Page

conduit completions bash >> ~/.bashrc
conduit man | man -l -

Full Changelog: v0.2.0...v0.3.0