{"id":15032043,"url":"https://github.com/wdv4758h/wesers","last_synced_at":"2025-10-04T05:31:11.857Z","repository":{"id":57672078,"uuid":"62484958","full_name":"wdv4758h/wesers","owner":"wdv4758h","description":"a simple HTTP/HTTPS server in Rust, please consider use *miniserve*: https://github.com/svenstaro/miniserve","archived":true,"fork":false,"pushed_at":"2018-05-12T14:58:36.000Z","size":74,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-01T23:17:09.275Z","etag":null,"topics":["rust-language","web-server"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wdv4758h.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-03T06:51:52.000Z","updated_at":"2023-02-01T02:51:37.000Z","dependencies_parsed_at":"2022-08-31T01:23:34.870Z","dependency_job_id":null,"html_url":"https://github.com/wdv4758h/wesers","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdv4758h%2Fwesers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdv4758h%2Fwesers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdv4758h%2Fwesers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wdv4758h%2Fwesers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wdv4758h","download_url":"https://codeload.github.com/wdv4758h/wesers/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235222539,"owners_count":18955327,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rust-language","web-server"],"created_at":"2024-09-24T20:17:11.641Z","updated_at":"2025-10-04T05:31:06.551Z","avatar_url":"https://github.com/wdv4758h.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"===========================================\nwesers - a simple HTTP/HTTPS server in Rust\n===========================================\n\n.. contents:: Table of Contents\n\n\nInstallation\n========================================\n\n(You need to compile with nightly, now)\n\nIf you want to build from source, make sure you are using nightly toolchain !\n\n\nWithout HTTPS support\n------------------------------\n\nInstall with\n\n.. code-block:: sh\n\n    cargo install --git https://github.com/wdv4758h/wesers\n\nor\n\n.. code-block:: sh\n\n    cargo install --git https://github.com/wdv4758h/wesers --tag v0.4.2\n\n\nIf you want to download prebuilt binary,\nyou can visit `GitHub's release page \u003chttps://github.com/wdv4758h/wesers/releases\u003e`_\n\n\nWith HTTPS support\n------------------------------\n\nInstall with\n\n.. code-block:: sh\n\n    cargo install --git https://github.com/wdv4758h/wesers --features https\n\nor\n\n.. code-block:: sh\n\n    cargo install --git https://github.com/wdv4758h/wesers --tag v0.4.2 --features https\n\n\n\nUsage\n========================================\n\n.. code-block:: sh\n\n    $ wesers --help\n    wesers 0.4.2\n    Chiu-Hsiang Hsu \u003cwdv4758h@gmail.com\u003e\n    a simple HTTP/HTTPS server in Rust\n\n    USAGE:\n        wesers [FLAGS] [OPTIONS]\n\n    FLAGS:\n        -h, --help       Prints help information\n            --https      use HTTPS instead of HTTP\n        -V, --version    Prints version information\n\n    OPTIONS:\n            --cert \u003ccert\u003e            SSL certificate file (needed for HTTPS)\n            --index \u003cindex\u003e          auto detect index.html [default: true]\n            --ip \u003cip\u003e                binding IP [default: 127.0.0.1]\n            --key \u003ckey\u003e              SSL key file (needed for HTTPS)\n            --port \u003cport\u003e            binding port [default: 8000]\n            --root \u003croot\u003e            root directory [default: .]\n            --template \u003ctemplate\u003e    HTML template path\n\n\nrun :\n\n.. code-block:: sh\n\n    $ RUST_LOG=info wesers\n    Simple HTTP Server running on http://127.0.0.1:8000/\n    INFO:logger: 127.0.0.1:54400 GET http://127.0.0.1:8000/ -\u003e 200 OK (0.268528 ms)\n\n\nrun with custom address and HTML template :\n\n.. code-block:: sh\n\n    $ wesers --ip 127.0.0.1 --port 8080 --template ./custom.mustache\n    Simple HTTP Server running on http://127.0.0.1:8080/\n\n\nrun in HTTPS :\n\n.. code-block:: sh\n\n    $ wesers --https --cert mycert.pem --key mykey.pem\n    Simple HTTP Server running on https://127.0.0.1:8000/\n\n\nBinary Size\n========================================\n\nx86_64 Linux (with HTTPS):\n\n+----------+---------+------------+--------------+-----------+\n| Filename | Version | Stripped ? | Size (Bytes) | Size (MB) |\n+----------+---------+------------+--------------+-----------+\n| wesers   | v0.4.2  | No         | 4568856      | 4.4M      |\n+----------+---------+------------+--------------+-----------+\n| wesers   | v0.4.2  | Yes        | 3055784      | 3.0M      |\n+----------+---------+------------+--------------+-----------+\n\n\nx86_64 Linux (without HTTPS):\n\n+----------+---------+------------+--------------+-----------+\n| Filename | Version | Stripped ? | Size (Bytes) | Size (MB) |\n+----------+---------+------------+--------------+-----------+\n| wesers   | v0.4.2  | No         | 4475568      | 4.3M      |\n+----------+---------+------------+--------------+-----------+\n| wesers   | v0.4.2  | Yes        | 2989928      | 2.9M      |\n+----------+---------+------------+--------------+-----------+\n\n\nx86_64 Linux (with musl, without HTTPS):\n\n+----------+---------+------------+--------------+-----------+\n| Filename | Version | Stripped ? | Size (Bytes) | Size (MB) |\n+----------+---------+------------+--------------+-----------+\n| wesers   | v0.4.2  | No         | 4553024      | 4.4M      |\n+----------+---------+------------+--------------+-----------+\n| wesers   | v0.4.2  | Yes        | 2791552      | 2.7M      |\n+----------+---------+------------+--------------+-----------+\n\n\n\nBenchmarks\n========================================\n\nThis is a simple load testing by `Herd \u003chttps://github.com/imjacobclark/Herd\u003e`_\n(Just a simple test, not indicate a lot)\n\n.. code-block:: sh\n\n    # Running both herd and wesers on Intel Core i5-2400 with 4GB RAM\n    $ ./target/release/herd -t 4 -r 1000 http://127.0.0.1:8000\n\n    ...\n    Spawning virtual user 1\n    ...\n    Spawning virtual user 3\n    ...\n    I made a total of 4000 requests, the mean response time was: 0.00042591915919911117 seconds.\n\n\n\nChangelog\n========================================\n\nNot Implemented Yet (Plan)\n------------------------------\n\n* more files information (type, size, last modified time)\n* more documentation\n* QR code support\n* optional userdir\n* support limit request times\n* RESTful API for files and directories\n* can run as CGI server\n* template live reload\n* handle POST for upload files\n* Android support\n* more template engine support\n* fix everything discover by linter (e.g. clippy)\n* code refactoring to improve performance\n* reduce binary size\n* HTTP2 support\n\n\nv0.4.3 (?)\n------------------------------\n\n* unicode url support\n\n\nv0.4.2 (2016-12-10)\n------------------------------\n\nFeatures\n++++++++++++++++++++\n\n* update all dependencies\n\n\nv0.4.1 (2016-08-03)\n------------------------------\n\nFix\n++++++++++++++++++++\n\n* HTTPS build\n\n\nv0.4.0 (2016-08-03)\n------------------------------\n\nFeatures\n++++++++++++++++++++\n\n* log client IP\n* update all dependencies\n\n\nv0.3.1 (2016-07-09)\n------------------------------\n\nFix\n++++++++++++++++++++\n\n* make HTTPS optional (because of the dependency of OpenSSL)\n\n\nv0.3.0 (2016-07-08)\n------------------------------\n\nFeatures\n++++++++++++++++++++\n\n* custom HTML template support (with `mustache \u003chttps://mustache.github.io/\u003e`_ )\n* custom root directory support\n* HTTPS support (with OpenSSL)\n\n\nv0.2.0 (2016-07-08)\n------------------------------\n\nFeatures\n++++++++++++++++++++\n\n* Bash completion by clap\n* optional index.html detection\n* handle 404 better\n\n\nv0.1.0 (2016-07-07)\n------------------------------\n\nFeatures\n++++++++++++++++++++\n\n* serve static files\n* list files in directory\n\n\n\nNotice\n========================================\n\nI've only tested on my x86_64 Linux.\nOther platforms are built by CI.\nIf they don't work properly, please tell me.\n\n\n\nDevelopement\n========================================\n\nMaking Release\n------------------------------\n\n1. update version in ``src/cli.yml``\n2. update version in ``Cargo.toml``\n3. update version in ``Cargo.lock``\n4. add git tag\n\n\nDependency of Shared Libraries\n------------------------------\n\nx86_64, Linux, no HTTPS\n\n.. code-block:: sh\n\n    $ ldd ./target/release/wesers\n            linux-vdso.so.1 (0x00007fff05f4c000)\n            libdl.so.2 =\u003e /usr/lib/libdl.so.2 (0x00007f1531e71000)\n            libpthread.so.0 =\u003e /usr/lib/libpthread.so.0 (0x00007f1531c54000)\n            libgcc_s.so.1 =\u003e /usr/lib/libgcc_s.so.1 (0x00007f1531a3e000)\n            libc.so.6 =\u003e /usr/lib/libc.so.6 (0x00007f153169d000)\n            /lib64/ld-linux-x86-64.so.2 (0x00007f1532075000)\n\n\nx86_64, Linux, with HTTPS\n\n.. code-block:: sh\n\n    $ ldd ./target/release/wesers\n            linux-vdso.so.1 (0x00007fffdbe85000)\n            libssl.so.1.0.0 =\u003e /usr/lib/libssl.so.1.0.0 (0x00007f168b810000)\n            libcrypto.so.1.0.0 =\u003e /usr/lib/libcrypto.so.1.0.0 (0x00007f168b399000)\n            libdl.so.2 =\u003e /usr/lib/libdl.so.2 (0x00007f168b195000)\n            libpthread.so.0 =\u003e /usr/lib/libpthread.so.0 (0x00007f168af78000)\n            libgcc_s.so.1 =\u003e /usr/lib/libgcc_s.so.1 (0x00007f168ad62000)\n            libc.so.6 =\u003e /usr/lib/libc.so.6 (0x00007f168a9c1000)\n            /lib64/ld-linux-x86-64.so.2 (0x00007f168ba81000)\n\n\nx86_64, Linux, musl, no HTTPS\n\n.. code-block:: sh\n\n    $ ldd ./target/x86_64-unknown-linux-musl/release/wesers\n            not a dynamic executable\n\n\nx86_64, Linux, musl, with HTTPS\n\n.. code-block:: sh\n\n    $ ldd ./target/x86_64-unknown-linux-musl/release/wesers\n            linux-vdso.so.1 (0x00007ffc55496000)\n            libssl.so.1.0.0 =\u003e /usr/lib/libssl.so.1.0.0 (0x00007f69cb9c8000)\n            libcrypto.so.1.0.0 =\u003e /usr/lib/libcrypto.so.1.0.0 (0x00007f69cb551000)\n            libc.so.6 =\u003e /usr/lib/libc.so.6 (0x00007f69cb1b0000)\n            libdl.so.2 =\u003e /usr/lib/libdl.so.2 (0x00007f69cafac000)\n            /lib/ld64.so.1 (0x00007f69cbc39000)\n\n\n\nSpecial Thanks\n========================================\n\n* `rust-everywhere \u003chttps://github.com/japaric/rust-everywhere/\u003e`_ for CI integration\n* `clap-rs \u003chttps://github.com/kbknapp/clap-rs\u003e`_ for arguments parsing\n* `iron \u003chttps://github.com/iron/iron\u003e`_ for Rust web framework\n* `mustache \u003chttps://github.com/nickel-org/rust-mustache\u003e`_ for HTML template\n* `Rust Team \u003chttps://www.rust-lang.org/team.html\u003e`_\n* and every project I've used\n\n\n\nLicense\n========================================\n\nwesers is licensed under the AGPL License - see the ``LICENSE`` file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdv4758h%2Fwesers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwdv4758h%2Fwesers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwdv4758h%2Fwesers/lists"}