All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Reusable library mode via
package koryxserv NewHandler(config, logger)API to mount static serving in another GohttpserverServer.Handler()API to expose the configured handler chain without starting a dedicated listener
- Project layout now separates CLI and library:
- CLI entrypoint moved to
cmd/koryx-serv/main.go - Core implementation stays at module root as reusable package
- CLI entrypoint moved to
- Build and runtime tooling updated to point to
./cmd/koryx-serv(Makefile,Dockerfile) - Tests reorganized to keep CLI tests under
cmd/koryx-servand library tests at module root - Documentation updated (
README.md,README.pt-BR.md,CONTEXT.md) with new layout and library usage examples
- HTTP/2 support
- Brotli compression
- WebDAV support
- Let's Encrypt integration
- Prometheus metrics
- Graceful configuration reload
1.0.0 - 2026-02-26
- Initial release
- Static file serving
- HTTP and HTTPS support
- Basic authentication
- CORS support with configurable origins
- Rate limiting per IP address
- IP whitelist and blacklist
- Path traversal protection
- Hidden file blocking
- Gzip compression with configurable levels (1-9)
- ETag support for efficient caching
- Cache-Control headers
- Custom HTTP headers
- Directory listing with beautiful HTML template
- SPA (Single Page Application) mode
- Custom index files
- Custom error pages
- Colored console logging
- Multiple log levels (debug, info, warn, error)
- Access and error logs
- File logging support
- JSON configuration file support
- Command-line flag support
- Configuration validation
- Graceful shutdown handling
- Security headers (X-Content-Type-Options, X-Frame-Options, X-XSS-Protection)
- Cross-platform compilation support
- GitHub Actions workflow for automated releases
- Comprehensive documentation (README in English and Portuguese)
- Developer documentation (CONTEXT.md)
- Example configuration file
- Makefile for easy building
- MIT License
- Constant-time comparison for authentication (prevents timing attacks)
- Path traversal protection with filepath.Clean
- Hidden file blocking for sensitive files (.env, .git, etc.)
- Rate limiting to prevent DDoS attacks
- IP filtering for access control
- Security headers by default
- HTTPS/TLS support
- Gzip compression reduces bandwidth usage
- ETags reduce unnecessary file transfers
- Configurable cache headers
- Efficient streaming file serving (doesn't load files into memory)
- Token bucket rate limiting algorithm
- Automatic cleanup of rate limiter entries
This is the first production-ready release of Serve, a static file server written in Go.
Highlights:
- Complete security features for production use
- High performance with compression and caching
- Flexible configuration via JSON or command-line
- Beautiful logging with colors
- Cross-platform support (Linux, Windows, macOS, ARM)
- Single binary with no dependencies
Download: See Releases
Documentation: See README.md