bash
cargo install http-server
Check for the installation to be successful.
bash
http-server --help
http-server [FLAGS] [OPTIONS] [root-dir]
Flags are provided without any values. For example:
http-server --help
Name | Short | Long | Description
--- | --- | --- | ---
Help | N/A | --help
| Prints help information
Version | -V
| --version
| Prints version information
Verbose | -v
| --verbose
| Prints output to console
Options receives a value and have support for default values as well.
http-server --host 127.0.0.1
Name | Short | Long | Description | Default Value
--- | --- | --- | --- | ---
Host | -h
| --host
| Address to bind the server | 127.0.0.1
Port | -p
| --port
| Port to bind the server | 7878
Configuration File | -c
| --config
| Specifies a configuration file. Example | N/A
TLS | N/A | --tls
| Enable TLS for HTTPS connections. Requires a Certificate and Key. Reference | N/A
TLS Ceritificate | N/A | --tls-cert
| Path to TLS certificate file. Depends on --tls
| cert.pem
TLS Key | N/A | --tls-key
| Path to TLS key file. Depends on --tls
| key.rsa
TLS Key Algorithm | N/A | --tls-key-algorithm
| Algorithm used to generate certificate key. Depends on --tls
| rsa
The following are some relevant details on features supported by this HTTP Server solution that may be of the interest of the user.
The TLS solution supported for this HTTP Server is built with rustls crate along with hyper-rustls.
When running with TLS support you will need:
A script to generate certificates and keys is available here tls-cert.sh.
This script relies on openssl
, so make sure you have it installed in your system.
Run http-server
as follows:
sh
http-server --tls --tls-cert <PATH TO YOUR CERTIFICATE> --tls-key <PATH TO YOUR KEY> --tls-key-algorithm pkcs8
In order to create a release you must push a Git tag as follows
sh
git tag -a <version> -m <message>
Example
sh
git tag -a v0.1.0 -m "First release"
Tags must follow semver conventions Tags must be prefixed with a lowercase
v
letter.
Then push tags as follows:
sh
git push origin main --follow-tags
Every contribution to this project is welcome. Feel free to open a pull request, an issue or just by starting this project.
Distributed under the terms of both the MIT license and the Apache License (Version 2.0)