• Stars
    star
    207
  • Rank 189,769 (Top 4 %)
  • Language
    Rust
  • License
    MIT License
  • Created over 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Simple and fast Web server

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