Chisle
코딩 에이전트 플러그인, 20개 실시간 작업에서 기본 모델 52% 활용, 간결한 페르소나와 출력 압축 제공
FlashLin은 단일 바이너리 Rust 웹 서버입니다
FlashLin is a single-binary Rust web server: HTTP/1.1, HTTP/2 and optional HTTP/3, reverse proxy and WebSocket support, the RealWeb realtime hub, supervised Node.js and Python apps, automatic HTTPS, i
개발 도구Rust · HTMLGitHub @endurasolution온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
FlashLin — a single-binary Rust web server combining Nginx's reverse-proxy power, Apache's PHP flexibility and Caddy's zero-friction TOML config. HTTP/1.1, HTTP/2, optional HTTP/3, automatic HTTPS.
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Nginx's reverse-proxy power, Apache's PHP hosting flexibility, and Caddy's zero-friction TOML setup — in a single, memory-safe Rust binary. Version 3.1 adds RealWeb, a built-in realtime hub: authenticated channels, resume after reconnect and backend publishing over HTTP, alongside plain WebSocket proxying. Version 3.0 added supervised Node.js and Python apps. See the roadmap below for ongoing hardening work.
Website · Documentation · Docker Hub
FlashLin is a single-binary web server built on Tokio + Hyper, with optional HTTP/3 through Quinn. Its feature set includes capabilities familiar from other servers:
| FlashLin does this | Like |
|---|---|
| Reverse proxy, round-robin upstream routing | Nginx |
| PHP-FPM / FastCGI hosting, virtual hosts | Apache |
| In-memory response cache | OpenLiteSpeed |
| Simple TOML config, zero-friction setup | Caddy |
Memory-safe, zero unsafe code | Rust |
| Feature | Status |
|---|---|
| HTTP/1.1 + HTTP/2 (Tokio + Hyper) | ✅ |
| HTTP/3 over QUIC + TLS 1.3 | ✅ Optional experimental http3 build; setup and limits |
| TLS / HTTPS (rustls — no OpenSSL required) | ✅ |
| PHP-FPM + FastCGI (full protocol) | ✅ |
| Reverse proxy | ✅ |
Virtual hosts (per-domain .toml files) | ✅ |
| In-memory response cache (RAM, with TTL) | ✅ |
| Gzip + Brotli compression | ✅ |
| ETag / Last-Modified / 304 Not Modified | ✅ |
| Security headers (CSP, HSTS, X-Frame, …) | ✅ |
| Rate limiting (req/min + burst) | ✅ |
| IP allow / deny lists | ✅ |
| Path traversal prevention | ✅ |
| Dotfile + sensitive file blocking | ✅ |
Per-directory config (.flashweb files) | ✅ |
.htaccess redirect / rewrite rules | ✅ |
nginx.conf redirect rules | ✅ |
| Prometheus metrics endpoint | ✅ |
| Connection overload limit (HTTP 503) | ✅ |
| Graceful shutdown | ✅ |
| Structured JSON logging | ✅ |
| Per-virtual-host cache and rate-limit state | ✅ v2 |
| Static directory mounts | ✅ v2 |
.flashweb directory ACLs and error pages | ✅ v2 |
| Configured Tokio worker count and header-read limits | ✅ v2 |
| Single binary — no runtime dependencies | ✅ |
| Hot config reload | ✅ Opt-in --watch, validated snapshots |
| WebSocket proxy (HTTP/1 upgrades) | ✅ v2 |
| RealWeb realtime hub: authenticated channels, resume after reconnect, acks, presence, backend publish |
curl -fsSL https://flashlin.com/install_linux.sh | bash
Tested with Rust 1.95; use a current stable toolchain:
rustup update stable
# HTTP-only binary
cargo build --release
# With TLS/HTTPS support
cargo build --release --features tls
# All three protocols, plus automatic certificates
cargo build --release --locked --features acme,http3
Binary is at target/release/flashlin.
HTTP/3 also needs [http3] enabled = true, TLS certificates and an open UDP port.
See the protocol guide and example config.
# Pull the public image
docker pull endurasolution/flashlin:latest
# Run (HTTP)
docker run -d -p 80:80 \
-v ./config/server.toml:/etc/flashlin/server.toml:ro \
-v ./public:/var/www/html:ro \
endurasolution/flashlin:latest
# Run (HTTPS)
docker run -d -p 80:80 -p 443:443 \
-v ./config/server.toml:/etc/flashlin/server.toml:ro \
-v ./public:/var/www/html:ro \
-v ./certs:/etc/flashlin/certs:ro \
endurasolution/flashlin:latest
See dockerflashlin/README.md for the full Docker + docker-compose guide.
# 1. Clone
git clone https://github.com/endurasolution/flashlin.git
cd flashlin
# 2. Build
cargo build --release
# 3. Run (uses server.toml in current directory)
./target/release/flashlin
# 4. Custom config path
./target/release/flashlin /etc/flashlin/server.toml
Open http://localhost:80.
All config lives in a single server.toml. See server.toml for the full reference with every option documented inline.
[server]
host = "0.0.0.0"
port = 80
root = "./public"
[[routes]]
path = "/"
root = "./public"
index = "index.html"
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗
| ✅ New; guide |
| HTTP QUERY method (RFC 10008) | ✅ Application/proxy transport, body validation and safe failover |
| Streaming files, byte ranges, precompressed assets | ✅ v2 |
| Pooled HTTP/HTTPS upstreams and streamed responses | ✅ v2 |
| Round-robin upstreams and passive failover | ✅ v2 |
| Auto TLS / ACME (Let's Encrypt) | ✅ Optional acme build; deployment validation pending |
Supervised Node.js / Python / any-command apps ([[apps]]) | ✅ v3: auto-restart with backoff, health checks, multi-instance load balancing; guide |
flashlin apps status and restart commands | ✅ v3 |
Per-client connection limit (max_connections_per_ip) | ✅ v3 |
| IPv6 /64-aware rate limiting | ✅ v3 |
| Control endpoint hardening (proxy-header refusal, optional token) | ✅ v3 |