servive-0.3.0 is not a library.
servive - Simple HTTP File Server
A lightweight, secure HTTP file server written in Rust with TLS and basic authentication support.
Features
- Serve files over HTTP/HTTPS
- Basic authentication support
- TLS encryption (via rustls)
- Optional directory listing
- Security headers (CSP, XSS protection, etc.)
- Configurable logging levels
- CLI configuration interface
Installation
From crates.io
From source
Usage
Basic usage
With authentication
With TLS
Disable directory listing
Enable Content Security Policy
Enable HSTS (requires TLS)
With specific bind address
IPv4:
IPv6:
Configuration Options
| Option | Description | Default |
|---|---|---|
-p, --port |
Port to listen on | 8000 |
-d, --directory |
Directory to serve files from | . (current dir) |
--username |
Username for basic auth | None |
--password |
Password for basic auth | None |
--log-level |
Logging level (error, warn, info, debug, trace) | info |
--tls |
Enable TLS | false |
--tls-cert |
TLS certificate file path | None |
--tls-key |
TLS private key file path | None |
--no-list-dirs |
Disable directory listing | false |
-b, --bind |
Bind address (IPv4 or IPv6) | 127.0.0.1 |
--show-dotfiles |
Show dotfiles (hidden by default) | false |
--enable-csp |
Enable Content Security Policy headers | false |
--enable-hsts |
Enable HTTP Strict Transport Security headers | false |
Security Considerations
- Basic authentication credentials are transmitted in plaintext when not using TLS
- Always use TLS in production environments
- The server adds security headers by default:
- X-Content-Type-Options
- X-Frame-Options
- X-XSS-Protection
- Content-Security-Policy is optional (enabled with --enable-csp)
- HSTS (HTTP Strict Transport Security) is now opt-in (enabled with --enable-hsts when using TLS)
Building from Source
- Clone the repository:
- Build in release mode:
The binary will be available at target/release/servive
License
The project is distributed under the MIT license