===========================================
// 127.0.0.1 - - [03/Aug/2016 12:15:30] "GET /favicon.ico HTTP/1.1" 404 -
need request time, HTTP version
.. contents:: Table of Contents
(You need to compile with nightly, now)
If you want to build from source, cargo install wesers
may not work.
(As it don't look Cargo.lock
currently)
Install with
.. code-block:: sh
cargo install --git https://github.com/wdv4758h/wesers
or
.. code-block:: sh
cargo install --git https://github.com/wdv4758h/wesers --tag v0.3.1
If you want to download prebuilt binary,
you can visit GitHub's release page <https://github.com/wdv4758h/wesers/releases>
_
.. code-block:: sh
$ wesers --help
wesers 0.4.0
Chiu-Hsiang Hsu <wdv4758h@gmail.com>
a simple HTTP/HTTPS server in Rust
USAGE:
wesers [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
--https use HTTPS instead of HTTP
-V, --version Prints version information
OPTIONS:
--cert <cert> SSL certificate file (needed for HTTPS)
--index <index> auto detect index.html [default: true]
--ip <ip> binding IP [default: 127.0.0.1]
--key <key> SSL key file (needed for HTTPS)
--port <port> binding port [default: 8000]
--root <root> root directory [default: .]
--template <template> HTML template path
.. code-block:: sh
$ wesers
Simple HTTP Server running on http://127.0.0.1:8000/
127.0.0.1:54400 GET http://127.0.0.1:8000/ -> 200 OK (0.268528 ms)
.. code-block:: sh
$ wesers --ip 127.0.0.1 --port 8080 --template ./custom.mustache
Simple HTTP Server running on http://127.0.0.1:8080/
.. code-block:: sh
$ wesers --https --cert mycert.pem --key mykey.pem
Simple HTTP Server running on https://127.0.0.1:8000/
x86_64 Linux:
+----------+---------+------------+--------------+-----------+ | Filename | Version | Stripped ? | Size (Bytes) | Size (MB) | +----------+---------+------------+--------------+-----------+ | wesers | v0.4.0 | No | 3573904 | 3.5M | +----------+---------+------------+--------------+-----------+ | wesers | v0.4.0 | Yes | 2769832 | 2.7M | +----------+---------+------------+--------------+-----------+
This is a simple load testing by Herd <https://github.com/imjacobclark/Herd>
_
(Just a simple test, not indicate a lot)
.. code-block:: sh
# Running both herd and wesers on Intel Core i5-2400 with 4GB RAM
$ ./target/release/herd -t 4 -r 1000 http://127.0.0.1:8000
...
Spawning virtual user 1
...
Spawning virtual user 3
...
I made a total of 4000 requests, the mean response time was: 0.00042591915919911117 seconds.
Features ++++++++++++++++++++
Fix ++++++++++++++++++++
Features ++++++++++++++++++++
mustache <https://mustache.github.io/>
_ )Features ++++++++++++++++++++
Features ++++++++++++++++++++
I've only tested on my x86_64 Linux. Other platforms are built by CI. If they don't work properly, please tell me.
src/arguments.yml
Cargo.toml
Cargo.lock
x86_64, Linux, no HTTPS
.. code-block:: sh
$ ldd ./target/release/wesers
linux-vdso.so.1 (0x00007fff05f4c000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f1531e71000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f1531c54000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f1531a3e000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f153169d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f1532075000)
x86_64, Linux, with HTTPS
.. code-block:: sh
$ ldd ./target/release/wesers
linux-vdso.so.1 (0x00007fffdbe85000)
libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f168b810000)
libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f168b399000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f168b195000)
libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007f168af78000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007f168ad62000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f168a9c1000)
/lib64/ld-linux-x86-64.so.2 (0x00007f168ba81000)
x86_64, Linux, musl, no HTTPS
.. code-block:: sh
$ ldd ./target/x86_64-unknown-linux-musl/release/wesers
not a dynamic executable
x86_64, Linux, musl, with HTTPS
.. code-block:: sh
$ ldd ./target/x86_64-unknown-linux-musl/release/wesers
linux-vdso.so.1 (0x00007ffc55496000)
libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x00007f69cb9c8000)
libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x00007f69cb551000)
libc.so.6 => /usr/lib/libc.so.6 (0x00007f69cb1b0000)
libdl.so.2 => /usr/lib/libdl.so.2 (0x00007f69cafac000)
/lib/ld64.so.1 (0x00007f69cbc39000)
rust-everywhere <https://github.com/japaric/rust-everywhere/>
_ for CI integrationclap-rs <https://github.com/kbknapp/clap-rs>
_ for arguments parsingiron <https://github.com/iron/iron>
_ for Rust web frameworkmustache <https://github.com/nickel-org/rust-mustache>
_ for HTML templateRust Team <https://www.rust-lang.org/team.html>
_wesers is licensed under the AGPL License - see the LICENSE
file for details