|
6 | 6 | <title>static-web — High-Performance Go Static File Server</title> |
7 | 7 | <meta |
8 | 8 | name="description" |
9 | | - content="Production-grade, blazing-fast static web file server written in Go. ~148k req/sec with fasthttp — 59% faster than Bun. In-memory LRU cache, HTTP/2, TLS 1.2+, gzip/brotli, security headers — built on fasthttp for maximum throughput." |
| 9 | + content="Production-grade, blazing-fast static web file server written in Go. ~148k req/sec with fasthttp — 59% faster than Bun. In-memory LRU cache, HTTP/2, TLS 1.2+, gzip/brotli/zstd, security headers — built on fasthttp for maximum throughput." |
10 | 10 | /> |
11 | 11 | <meta |
12 | 12 | name="keywords" |
13 | | - content="static file server, go, golang, http2, tls, lru cache, gzip, brotli, performance, security, web server, static site hosting, docker" |
| 13 | + content="static file server, go, golang, http2, tls, lru cache, gzip, brotli, zstd, performance, security, web server, static site hosting, docker" |
14 | 14 | /> |
15 | 15 | <meta name="author" content="21no.de" /> |
16 | 16 | <meta name="robots" content="index, follow" /> |
|
20 | 20 | <meta property="og:title" content="static-web — High-Performance Go Static File Server" /> |
21 | 21 | <meta |
22 | 22 | property="og:description" |
23 | | - content="Production-grade static web file server in Go. ~148k req/sec with fasthttp — 59% faster than Bun. HTTP/2, TLS 1.2+, gzip/brotli, security hardened." |
| 23 | + content="Production-grade static web file server in Go. ~148k req/sec with fasthttp — 59% faster than Bun. HTTP/2, TLS 1.2+, gzip/brotli/zstd, security hardened." |
24 | 24 | /> |
25 | 25 | <meta property="og:type" content="website" /> |
26 | 26 | <meta property="og:url" content="https://static.21no.de" /> |
|
37 | 37 | <meta name="twitter:title" content="static-web — High-Performance Go Static File Server" /> |
38 | 38 | <meta |
39 | 39 | name="twitter:description" |
40 | | - content="Production-grade static file server in Go. ~148k req/sec with fasthttp — 59% faster than Bun. HTTP/2, TLS, gzip/brotli — security hardened." |
| 40 | + content="Production-grade static file server in Go. ~148k req/sec with fasthttp — 59% faster than Bun. HTTP/2, TLS, gzip/brotli/zstd — security hardened." |
41 | 41 | /> |
42 | 42 | <meta name="twitter:image" content="https://static.21no.de/og-image.svg" /> |
43 | 43 | <meta name="twitter:image:alt" content="static-web — High-Performance Go Static File Server" /> |
|
75 | 75 | "programmingLanguage": "Go", |
76 | 76 | "license": "https://github.com/BackendStack21/static-web/blob/main/LICENSE", |
77 | 77 | "codeRepository": "https://github.com/BackendStack21/static-web", |
78 | | - "description": "A production-grade, blazing-fast static web file server written in Go. ~148k req/sec with fasthttp — 59% faster than Bun. Features in-memory LRU cache, TTL-aware cache expiry, HTTP/2, TLS 1.2+, gzip and brotli compression, and comprehensive security headers.", |
| 78 | + "description": "A production-grade, blazing-fast static web file server written in Go. ~148k req/sec with fasthttp — 59% faster than Bun. Features in-memory LRU cache, TTL-aware cache expiry, HTTP/2, TLS 1.2+, gzip, brotli, and zstd compression, and comprehensive security headers.", |
79 | 79 | "author": { |
80 | 80 | "@type": "Person", |
81 | 81 | "name": "Rolando Santamaria Maso", |
|
86 | 86 | "price": "0", |
87 | 87 | "priceCurrency": "USD" |
88 | 88 | }, |
89 | | - "featureList": [ |
90 | | - "~148k req/sec — 59% faster than Bun's native static server", |
91 | | - "In-memory LRU cache with ~28 ns/op lookup", |
92 | | - "Startup preloading with path-safety cache pre-warming", |
93 | | - "TTL-aware cache expiry with optional automatic stale-entry eviction", |
94 | | - "Direct ctx.SetBody() fast path with pre-formatted headers for cache hits", |
95 | | - "HTTP/2 with TLS 1.2+ and HTTP→HTTPS redirect", |
96 | | - "TLS 1.2+ with AEAD cipher suites", |
97 | | - "gzip and brotli compression", |
98 | | - "6-step path traversal prevention", |
99 | | - "Security headers (CSP, HSTS, Permissions-Policy)", |
100 | | - "CORS with wildcard and per-origin modes", |
101 | | - "Directory listing with breadcrumb navigation", |
102 | | - "Docker and container ready", |
103 | | - "Graceful shutdown with signal handling" |
104 | | - ] |
| 89 | + "featureList": [ |
| 90 | + "~148k req/sec — 59% faster than Bun's native static server", |
| 91 | + "In-memory LRU cache with ~28 ns/op lookup", |
| 92 | + "Startup preloading with path-safety cache pre-warming", |
| 93 | + "TTL-aware cache expiry with optional automatic stale-entry eviction", |
| 94 | + "Direct ctx.SetBody() fast path with pre-formatted headers for cache hits", |
| 95 | + "HTTP/2 with TLS 1.2+ and HTTP→HTTPS redirect", |
| 96 | + "TLS 1.2+ with AEAD cipher suites", |
| 97 | + "gzip, brotli, and zstd compression", |
| 98 | + "6-step path traversal prevention", |
| 99 | + "Security headers (CSP, HSTS, Permissions-Policy)", |
| 100 | + "CORS with wildcard and per-origin modes", |
| 101 | + "Directory listing with breadcrumb navigation", |
| 102 | + "Docker and container ready", |
| 103 | + "Graceful shutdown with signal handling" |
| 104 | + ] |
105 | 105 | }, |
106 | 106 | { |
107 | 107 | "@type": "BreadcrumbList", |
|
218 | 218 | <h1 class="hero-title">static-web</h1> |
219 | 219 | <p class="hero-subtitle">Production-Grade Go Static File Server</p> |
220 | 220 | <p class="hero-description"> |
221 | | - Blazing fast, lightweight static server with <strong>in-memory LRU cache</strong>, startup preloading, HTTP/2, TLS, gzip / brotli, |
| 221 | + Blazing fast, lightweight static server with <strong>in-memory LRU cache</strong>, startup preloading, HTTP/2, TLS, gzip / brotli / zstd, |
222 | 222 | and security headers baked in. |
223 | 223 | </p> |
224 | 224 |
|
@@ -301,10 +301,10 @@ <h3>Near-Zero Alloc Hot Path</h3> |
301 | 301 | </div> |
302 | 302 | <div class="feature-card"> |
303 | 303 | <div class="feature-icon"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 22V4c0-.5.2-1 .6-1.4C5 2.2 5.5 2 6 2h8.5L20 7.5V20c0 .5-.2 1-.6 1.4-.4.4-.9.6-1.4.6h-2"/><path d="M14 2v6h6"/><path d="M10 20v-5"/><path d="M10 12v-1"/><path d="M10 8v-1"/></svg></div> |
304 | | - <h3>gzip + Brotli</h3> |
| 304 | + <h3>gzip + Brotli + Zstd</h3> |
305 | 305 | <p> |
306 | | - On-the-fly gzip via pooled writers, plus pre-compressed <code>.gz</code>/<code>.br</code> sidecar file |
307 | | - support. Brotli preference over gzip. |
| 306 | + On-the-fly gzip and zstd via pooled writers, plus pre-compressed <code>.gz</code>/<code>.br</code>/<code>.zst</code> sidecar file |
| 307 | + support. Encoding priority: brotli > zstd > gzip. |
308 | 308 | </p> |
309 | 309 | </div> |
310 | 310 | <div class="feature-card"> |
@@ -603,7 +603,7 @@ <h3>Compress Middleware</h3> |
603 | 603 | <div class="pipeline-info"> |
604 | 604 | <h3>File Handler</h3> |
605 | 605 | <p> |
606 | | - Preloaded or cached → direct ctx.SetBody() fast path · brotli/gzip sidecar negotiation · miss → stat → read → |
| 606 | + Preloaded or cached → direct ctx.SetBody() fast path · brotli/zstd/gzip sidecar negotiation · miss → stat → read → |
607 | 607 | cache |
608 | 608 | </p> |
609 | 609 | </div> |
|
0 commit comments