9 releases

0.0.8 May 20, 2022
0.0.7 Feb 22, 2021
0.0.6 Jan 26, 2021
0.0.5 Dec 31, 2020
0.0.0-alpha.0 Apr 25, 2019

#468 in HTTP server

MIT license

105KB
3K SLoC

see

GitHub Workflow Status Crates.io LICENSE Document

Overview

Simple and fast web server as a single executable with no extra dependencies required.

Features

  • Built with Tokio and Hyper
  • TLS encryption through Rustls
  • HTTP/1 and HTTP/2 support
  • Content compression auto, gzip, deflate or br
  • Rewrite rules for redirection
  • Allow/deny addresses allowing wildcards
  • Location with regex matching
  • Reverse proxy
  • Basic authentication
  • Error handling
  • Customized logs
  • And more

Usage

Quick start in current directory:

see start

or specify the port and directory via parameters:

see start -b 80 -p /root/www

Also, you can use see -c [FILE] to specify a configuration file or just use the default one in ~/.see.conf. Below, a simple configuration example to start the HTTPS server:

server {
    listen 80
    root /root/www
}

server {
    listen 443
    root /root/www
    host example.com
    https {
        key ./ssl.key
        cert ./ssl.pem
    }
}

Documentation

The documentation is available at docs/. Take a look at it to get more information about more configuration options.

Installation

Download the compiled executable corresponding to your system from the release page.

Cargo

cargo install see
# or
cargo install --git https://github.com/wyhaya/see

Docker

docker pull wyhaya/see

Container

Add the following to see.conf:

server {
    listen 80
    echo Hello, world!
}

and run the container:

docker run -idt --name see -p 80:80 -p 443:443 -v '$PWD'/see:/ wyhaya/see

lastly, open the link http://localhost and you should see Hello, world!.

Licensing

see is released under MIT license. Check the LICENSE file for more details.


ToDo

  • Fix docker container (ubuntu, ca-certificates)
  • Fix the bug of matching https and http on the same port
  • Support global configuration
  • Support certificate with password
  • Daemon for Unix systems and service for Windows

Dependencies

~26–38MB
~843K SLoC