httprs

Crates.iohttprs
lib.rshttprs
version0.2.5
created_at2024-02-10 16:46:53.522889+00
updated_at2025-06-17 07:00:13.365912+00
descriptionA fast simple command line http server tool
homepage
repositoryhttps://github.com/10fish/httprs
max_upload_size
id1135050
size104,907
Y (10fish)

documentation

https://docs.rs/httprs

README

httprs

License: MIT CI Status Audit Dependency status Version Docs Lines of Code

A fast simple command line http server tool.

Why httprs ?

If you're looking for a simple, fast, easy-to-use, generic-MIME-types-supporting and partial-content-supporting static file server like me, it might be an option.

Warning: It is currently an experimental project. Use it at your own risk!!!

Features

the main features are as followings, and certainly more will be added:

  • performant and essy to use
  • multi-platform support
  • multiple MIME support
  • colored logs
  • partial content support

HTTP Server Standards & Benchmarks

Implemented Features

  1. HTTP/1.1 Standard Support:
  • ✅ Basic HTTP/1.1 protocol support
  • ✅ Standard HTTP methods
  • ✅ Standard HTTP headers
  • ✅ Status codes
  1. Performance Features:
  • ✅ Asynchronous I/O (using tokio)
  • ✅ Chunked file transfer (Range request support)
  • ✅ Static file serving
  • ✅ Directory listing
  • ✅ Graceful shutdown
  1. Security Features:
  • ✅ HTTPS support (TLS/SSL)
  • ✅ Basic error handling
  • ✅ Request logging
  1. Functional Features:
  • ✅ MIME type support
  • ✅ File system navigation
  • ✅ Breadcrumb navigation
  • ✅ Response time tracking

Planned Features

  1. HTTP Standards:
  • ⏳ HTTP/2 support
  • ⏳ HTTP/3 support
  • ⏳ WebSocket support
  • ⏳ Compression support (gzip, deflate)
  1. Performance Optimizations:
  • ⏳ Connection pool management
  • ⏳ Cache control
  • ⏳ Compression transmission
  • ⏳ Load balancing
  • ⏳ Request rate limiting
  1. Security Enhancements:
  • ⏳ CORS support
  • ⏳ Security headers (HSTS, etc.)
  • ⏳ Request validation
  • ⏳ Access control
  1. Advanced Features:
  • ⏳ Dynamic content generation
  • ⏳ Session management
  • ⏳ Authentication & Authorization
  • ⏳ API support
  • ⏳ Reverse proxy
  1. Monitoring & Management:
  • ⏳ Performance metrics collection
  • ⏳ Health checks
  • ⏳ Management interface
  • ⏳ Hot reload configuration

Installation

Download pre-built binaries from release page.

or install with cargo in terminal:

cargo install httprs

Usage

# quick start, running on all network interfaces (0.0.0.0:9900)
httprs
# run on specific local IP address
httprs -H 192.168.10.1
# run in secure mode
httprs --secure --key /path/to/keyfile --cert /path/to/certfile
# run with graceful shutdown
httprs --graceful-shutdown
# help for more details
httprs --help

Note: By default, the server binds to 0.0.0.0 which means it will listen on all available network interfaces. This makes the server accessible from other devices on the network. If you want to restrict access to localhost only, use -H 127.0.0.1.

Roadmap

  • Logging
    • Request/Response Logging
    • Silent Mode
    • Logging Level
    • Logging Output into File
  • File Browser Support
    • Generic File Type Supporting: image/text/video/binary
    • File Metadata Details
      • File Size
      • Last Modified
      • More if Necessary
    • File List Ordering
    • Content-Type Customization
  • Multiplatform Support
    • macOS
    • Linux
    • Windows
  • HTTPS/TLS Transmission Encryption
  • Partial Request/Response Support
    • If-Range REQUEST Header
    • If-Match REQUEST Header
    • Range REQUEST Header: when file size exceeds 50MB
    • Accept-Ranges RESPONSE Header
    • Content-Range RESPONSE Header
    • CODE 206 - Partial Content
    • CODE 416 - Range Not Satisfiable
  • CORS Support
  • Transmission Compression
  • Authentication
    • Simple Basic
    • Token Based
  • Graceful Shutdown
  • Proxy
  • Themes and Appearances Customization

How to contribute

Any advice is welcomed and feel free to make a fork and push your own code.

Acknowledgements

Thanks to those who are inspiring me, supporting me, providing me with ideas, advice, solutions, and all users who bear much using this.

Licenses

MIT License

Commit count: 53

cargo fmt