Simple http server in Rust (Windows/Mac/Linux)

Overview

How it looks like?

Screenshot

Command Line Arguments

Simple HTTP(s) Server 0.6.1

USAGE:
    simple-http-server [FLAGS] [OPTIONS] [--] [root]

FLAGS:
        --cors       Enable CORS via the "Access-Control-Allow-Origin" header
    -h, --help       Prints help information
    -i, --index      Enable automatic render index page [index.html, index.htm]
        --nocache    Disable http cache
        --norange    Disable header::Range support (partial request)
        --nosort     Disable directory entries sort (by: name, modified, size)
    -s, --silent     Disable all outputs
    -u, --upload     Enable upload files (multiple select)
    -V, --version    Prints version information

OPTIONS:
    -a, --auth <auth>                              HTTP Basic Auth (username:password)
        --cert <cert>                              TLS/SSL certificate (pkcs#12 format)
        --certpass <certpass>                      TLS/SSL certificate password
    -c, --compress <compress>...
            Enable file compression: gzip/deflate
                Example: -c=js,d.ts
                Note: disabled on partial request!
        --ip <ip>                                  IP address to bind [default: 0.0.0.0]
    -p, --port <port>                              Port number [default: 8000]
        --redirect <redirect>                      takes a URL to redirect to using HTTP 301 Moved Permanently
    -t, --threads <threads>                        How many worker threads [default: 3]
        --try-file <PATH>
            serve this file (server root relative) in place of missing files (useful for single page apps) [aliases:
            try-file-404]
    -l, --upload-size-limit <upload_size_limit>    Upload file size limit [bytes] [default: 8000000]


Installation

Download binary

Goto Download

  • windows-64bit
  • osx-64bit
  • linux-64bit

Install by cargo

# Install Rust
curl https://sh.rustup.rs -sSf | sh

# Install simple-http-server
cargo install simple-http-server
rehash
simple-http-server -h

Features

  • Windows support (with colored log)
  • Specify listen address (ip, port)
  • Specify running threads
  • Specify root directory
  • Pretty log
  • Nginx like directory view (directory entries, link, filesize, modfiled date)
  • Breadcrumb navigation
  • (default enabled) Guess mime type
  • (default enabled) HTTP cache control
    • Sending Last-Modified / ETag
    • Replying 304 to If-Modified-Since
  • (default enabled) Partial request
    • Accept-Ranges: bytes([ByteRangeSpec; length=1])
    • [Range, If-Range, If-Match] => [Content-Range, 206, 416]
  • (default disabled) Automatic render index page [index.html, index.htm]
  • (default disabled) Upload file
  • (default disabled) HTTP Basic Authentication (by username:password)
  • Sort by: filename, filesize, modifled
  • HTTPS support
  • Content-Encoding: gzip/deflate
  • Added CORS headers support
  • Silent mode
Comments
  • 🚨 Potential Security Vulnerability

    🚨 Potential Security Vulnerability

    Hello, @TheWaWaR @vi @not-fl3 @michelk @tforgione - 2 potential high severity security vulnerability in your repository has been disclosed to huntr.

    Visit report URL and validate them https://www.huntr.dev/bounties/3-other-TheWaWaR/simple-http-server/ https://www.huntr.dev/bounties/2-other-TheWaWaR/simple-http-server/

    Best Regards

    opened by x3rz 7
  • Strip symbols and add crate openssl to and allow the binary to run in distroless containers

    Strip symbols and add crate openssl to and allow the binary to run in distroless containers

    Motivation

    I was building a minimal distroless container image for this program, and I realized that the release binary's size can still be reduced significantly. Stripping the binary will cut a significant amount of size off the binary:

    image

    The binary also doesn't run in Google's distroless static or base image since it cannot find libssl.

    Changes

    • Added strip into the release profile to automatically strip the binary upon building the release.
    • Added openssl as a build dependency so it will be integrated into the binary, allowing the binary to run on static:nonroot.

    Here's an example Dockerfile I created for it: https://github.com/k4yt3x/simple-http-server/blob/master/Dockerfile

    The final image is around 11 MiB in size, which is a decent size. I can open another PR for the Dockerfile if you're interested in maintaining it in your repo too.

    opened by k4yt3x 5
  • [feature] add mime type bindings by command line

    [feature] add mime type bindings by command line

    While experimenting with WebAssembly I found that (at least in Firefox) WebAssembly.instantiateStreaming() requires .wasm-resources to be delivered as application/wasm. Otherwise you end up with "TypeError: Response has unsupported MIME type".

    Since application/wasm doesn't seem to be official, yet (https://www.iana.org/assignments/media-types/media-types.xhtml#application) I cannot expect simple-http-server to include this binding.

    It would be helpful to be able to add bindings between file extensions and mime types via command line.

    opened by kawogi 4
  • feat: add headers useful to allow use of threads with webassembly

    feat: add headers useful to allow use of threads with webassembly

    This adds two options to the server controlling two http headers which end up being required to let browser use threads with webassembly.

    The use case here, is to have an html page with webassembly code in it, where the wasm uses threads, and allow firefox to run that code when opening the file via simple-http-server.

    Maybe having only one option controlling both headers would make sense.

    opened by s-d-m 3
  • Question: How to use --cert option ?

    Question: How to use --cert option ?

    There is not instructions in the repository, and all method that I have tried failed with random error messages: such as: Tls(Error { code: -25264, message: "MAC verification failed during PKCS12 import (wrong password?)" })'

    methods: https://gist.github.com/Eng-Fouad/6cdc8263068700ade87e4e3bf459a988 https://gist.github.com/princeppy/d00bad66d9caac86d9b7d3ce9e35fc12

    Is it possible to add somewhere how such desired pkcs12 file could be generated ?

    opened by patrickelectric 3
  • Version from cargo and released bin is unsecure!

    Version from cargo and released bin is unsecure!

    http://x.x.x.x/%2F is possible! No problem to retrieve ro-files from /etc.

    Also would be nyce to see a https-only and an autogenration for self-signed certs.

    opened by markus-geiger 3
  • Added silent option

    Added silent option

    Hi!

    Thanks for this nice server ! I used to use node's http-server but I wasn't really satisfied with it. However, it has a silent option, that disables all outputs.

    This pull requests adds this feature. I didn't disable the error message, because I think it would not be user friendly if the program failed silently.

    opened by tforgione 3
  • Cannot update 0.6.1 -> 0.6.2, openssl issue

    Cannot update 0.6.1 -> 0.6.2, openssl issue

    ; cargo install --list |rg simple-http-server
    simple-http-server v0.6.1:
    
    cargo install-update simple-http-server
    ; cargo install-update simple-http-server
        Updating registry 'https://github.com/rust-lang/crates.io-index'
    
    Package             Installed  Latest  Needs update
    simple-http-server  v0.6.1     v0.6.2  Yes
    
    # downloading, compiling, etc...
    error: failed to run custom build command for `openssl-sys v0.9.75`
    
    Caused by:
      process didn't exit successfully: `/tmp/cargo-installND2kr3/release/build/openssl-sys-3257b66156297b35/build-script-main` (exit status: 101)
      --- stdout
      cargo:rustc-cfg=const_fn
      cargo:rerun-if-env-changed=X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR
      X86_64_UNKNOWN_LINUX_GNU_OPENSSL_NO_VENDOR unset
      cargo:rerun-if-env-changed=OPENSSL_NO_VENDOR
      OPENSSL_NO_VENDOR unset
      CC_x86_64-unknown-linux-gnu = None
      CC_x86_64_unknown_linux_gnu = None
      HOST_CC = None
      CC = None
      CFLAGS_x86_64-unknown-linux-gnu = None
      CFLAGS_x86_64_unknown_linux_gnu = None
      HOST_CFLAGS = None
      CFLAGS = None
      CRATE_CC_NO_DEFAULTS = None
      DEBUG = Some("false")
      CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
      running "perl" "./Configure" "--prefix=/tmp/cargo-installND2kr3/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/install" "--openssldir=/usr/local/ssl" "no-dso" "no-shared" "no-ssl3" "no-unit-test" "no-comp" "no-zlib" "no-zlib-dynamic" "no-md2" "no-rc5" "no-weak-ssl-ciphers" "no-camellia" "no-idea" "no-seed" "linux-x86_64" "-O2" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64"
      Configuring OpenSSL version 1.1.1q (0x1010111fL) for linux-x86_64
      Using os-specific seed configuration
      Creating configdata.pm
      Creating Makefile
    
      **********************************************************************
      ***                                                                ***
      ***   OpenSSL has been successfully configured                     ***
      ***                                                                ***
      ***   If you encounter a problem while building, please open an    ***
      ***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
      ***   and include the output from the following command:           ***
      ***                                                                ***
      ***       perl configdata.pm --dump                                ***
      ***                                                                ***
      ***   (If you are new to OpenSSL, you might want to consult the    ***
      ***   'Troubleshooting' section in the INSTALL file first)         ***
      ***                                                                ***
      **********************************************************************
      running "make" "depend"
    
      --- stderr
      thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', /home/czar/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-src-111.22.0+1.1.1q/src/lib.rs:488:39
      note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    warning: build failed, waiting for other jobs to finish...
    error: failed to compile `simple-http-server v0.6.2`, intermediate artifacts can be found at `/tmp/cargo-installND2kr3`
    
    perl configdata.pm --dump
    ; perl /path/to/configdata.pm --dump
    
    Command line (with current working directory = /tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/build/src):
    
        /usr/bin/perl ./Configure --prefix=/tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/install --openssldir=/usr/local/ssl no-dso no-shared no-ssl3 no-unit-test no-comp no-zlib no-zlib-dynamic no-md2 no-rc5 no-weak-ssl-ciphers no-camellia no-idea no-seed linux-x86_64 -O2 -ffunction-sections -fdata-sections -fPIC -m64
    
    Perl information:
    
        /usr/bin/perl
        5.36.0 for x86_64-linux-thread-multi
    
    Enabled features:
    
        afalgeng
        aria
        asm
        async
        autoalginit
        autoerrinit
        autoload-config
        bf
        blake2
        capieng
        cast
        chacha
        cmac
        cms
        ct
        deprecated
        des
        dgram
        dh
        dsa
        dtls
        ec
        ec2m
        ecdh
        ecdsa
        engine
        err
        filenames
        gost
        hw(-.+)?
        makedepend
        md4
        mdc2
        multiblock
        nextprotoneg
        pinshared
        ocb
        ocsp
        pic
        poly1305
        posix-io
        psk
        rc2
        rc4
        rdrand
        rfc3779
        rmd160
        scrypt
        siphash
        sm2
        sm3
        sm4
        sock
        srp
        srtp
        sse2
        ssl
        static-engine
        stdio
        tests
        threads
        tls
        ts
        ui-console
        whirlpool
        tls1
        tls1-method
        tls1_1
        tls1_1-method
        tls1_2
        tls1_2-method
        tls1_3
        dtls1
        dtls1-method
        dtls1_2
        dtls1_2-method
    
    Disabled features:
    
        asan                    [default] OPENSSL_NO_ASAN
        buildtest-c++           [default] 
        camellia                [option]  OPENSSL_NO_CAMELLIA (skip crypto/camellia)
        comp                    [option]  OPENSSL_NO_COMP (skip crypto/comp)
        crypto-mdebug           [default] OPENSSL_NO_CRYPTO_MDEBUG
        crypto-mdebug-backtrace [default] OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
        devcryptoeng            [default] OPENSSL_NO_DEVCRYPTOENG
        dso                     [option]  OPENSSL_NO_DSO
        dynamic-engine          [cascade] 
        ec_nistp_64_gcc_128     [default] OPENSSL_NO_EC_NISTP_64_GCC_128
        egd                     [default] OPENSSL_NO_EGD
        external-tests          [default] OPENSSL_NO_EXTERNAL_TESTS
        fuzz-libfuzzer          [default] OPENSSL_NO_FUZZ_LIBFUZZER
        fuzz-afl                [default] OPENSSL_NO_FUZZ_AFL
        heartbeats              [default] OPENSSL_NO_HEARTBEATS
        idea                    [option]  OPENSSL_NO_IDEA (skip crypto/idea)
        md2                     [option]  OPENSSL_NO_MD2 (skip crypto/md2)
        msan                    [default] OPENSSL_NO_MSAN
        rc5                     [option]  OPENSSL_NO_RC5 (skip crypto/rc5)
        sctp                    [default] OPENSSL_NO_SCTP
        seed                    [option]  OPENSSL_NO_SEED (skip crypto/seed)
        shared                  [option]  
        ssl-trace               [default] OPENSSL_NO_SSL_TRACE
        ubsan                   [default] OPENSSL_NO_UBSAN
        unit-test               [option]  OPENSSL_NO_UNIT_TEST
        weak-ssl-ciphers        [option]  OPENSSL_NO_WEAK_SSL_CIPHERS
        zlib                    [option]  
        zlib-dynamic            [option]  
        ssl3                    [option]  OPENSSL_NO_SSL3
        ssl3-method             [default] OPENSSL_NO_SSL3_METHOD
    
    Config target attributes:
    
        AR => "ar",
        ARFLAGS => "r",
        CC => "gcc",
        CFLAGS => "-Wall -O3",
        CXX => "g++",
        CXXFLAGS => "-Wall -O3",
        HASHBANGPERL => "/usr/bin/env perl",
        RANLIB => "ranlib",
        RC => "windres",
        aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
        aes_obj => "aes_core.o aes_cbc.o vpaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o",
        apps_aux_src => "",
        apps_init_src => "",
        apps_obj => "",
        bf_asm_src => "bf_enc.c",
        bf_obj => "bf_enc.o",
        bn_asm_src => "asm/x86_64-gcc.c x86_64-mont.s x86_64-mont5.s x86_64-gf2m.s rsaz_exp.c rsaz-x86_64.s rsaz-avx2.s",
        bn_obj => "asm/x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o",
        bn_ops => "SIXTY_FOUR_BIT_LONG",
        build_file => "Makefile",
        build_scheme => [ "unified", "unix" ],
        cast_asm_src => "c_enc.c",
        cast_obj => "c_enc.o",
        cflags => "-pthread -m64",
        chacha_asm_src => "chacha-x86_64.s",
        chacha_obj => "chacha-x86_64.o",
        cmll_asm_src => "cmll-x86_64.s cmll_misc.c",
        cmll_obj => "cmll-x86_64.o cmll_misc.o",
        cppflags => "",
        cpuid_asm_src => "x86_64cpuid.s",
        cpuid_obj => "x86_64cpuid.o",
        cxxflags => "-std=c++11 -pthread -m64",
        defines => [  ],
        des_asm_src => "des_enc.c fcrypt_b.c",
        des_obj => "des_enc.o fcrypt_b.o",
        disable => [  ],
        dso_extension => ".so",
        dso_scheme => "dlfcn",
        ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s",
        ec_obj => "ecp_nistz256.o ecp_nistz256-x86_64.o x25519-x86_64.o",
        enable => [ "afalgeng" ],
        ex_libs => "-ldl -pthread",
        exe_extension => "",
        includes => [  ],
        keccak1600_asm_src => "keccak1600-x86_64.s",
        keccak1600_obj => "keccak1600-x86_64.o",
        lflags => "",
        lib_cflags => "",
        lib_cppflags => "-DOPENSSL_USE_NODELETE -DL_ENDIAN",
        lib_defines => [  ],
        md5_asm_src => "md5-x86_64.s",
        md5_obj => "md5-x86_64.o",
        modes_asm_src => "ghash-x86_64.s aesni-gcm-x86_64.s",
        modes_obj => "ghash-x86_64.o aesni-gcm-x86_64.o",
        module_cflags => "-fPIC",
        module_cxxflags => "",
        module_ldflags => "-Wl,-znodelete -shared -Wl,-Bsymbolic",
        multilib => "64",
        padlock_asm_src => "e_padlock-x86_64.s",
        padlock_obj => "e_padlock-x86_64.o",
        perlasm_scheme => "elf",
        poly1305_asm_src => "poly1305-x86_64.s",
        poly1305_obj => "poly1305-x86_64.o",
        rc4_asm_src => "rc4-x86_64.s rc4-md5-x86_64.s",
        rc4_obj => "rc4-x86_64.o rc4-md5-x86_64.o",
        rc5_asm_src => "rc5_enc.c",
        rc5_obj => "rc5_enc.o",
        rmd160_asm_src => "",
        rmd160_obj => "",
        sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s sha256-mb-x86_64.s",
        sha1_obj => "sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o",
        shared_cflag => "-fPIC",
        shared_defflag => "-Wl,--version-script=",
        shared_defines => [  ],
        shared_extension => ".so.\$(SHLIB_VERSION_NUMBER)",
        shared_extension_simple => ".so",
        shared_ldflag => "-Wl,-znodelete -shared -Wl,-Bsymbolic",
        shared_rcflag => "",
        shared_sonameflag => "-Wl,-soname=",
        shared_target => "linux-shared",
        thread_defines => [  ],
        thread_scheme => "pthreads",
        unistd => "<unistd.h>",
        uplink_aux_src => "",
        uplink_obj => "",
        wp_asm_src => "wp-x86_64.s",
        wp_obj => "wp-x86_64.o",
    
    Recorded environment:
    
        AR = 
        BUILDFILE = 
        CC = cc
        CFLAGS = 
        CPPFLAGS = 
        CROSS_COMPILE = 
        CXX = 
        CXXFLAGS = 
        HASHBANGPERL = 
        LDFLAGS = 
        LDLIBS = 
        OPENSSL_LOCAL_CONFIG_DIR = 
        PERL = 
        RANLIB = 
        RC = 
        RCFLAGS = 
        WINDRES = 
        __CNF_CFLAGS = 
        __CNF_CPPDEFINES = 
        __CNF_CPPFLAGS = 
        __CNF_CPPINCLUDES = 
        __CNF_CXXFLAGS = 
        __CNF_LDFLAGS = 
        __CNF_LDLIBS = 
    
    Makevars:
    
        AR              = ar
        ARFLAGS         = r
        CC              = cc
        CFLAGS          = -Wall -O3 -O2 -ffunction-sections -fdata-sections -fPIC -m64
        CPPDEFINES      = 
        CPPFLAGS        = 
        CPPINCLUDES     = 
        CXX             = g++
        CXXFLAGS        = -Wall -O3 -O2 -ffunction-sections -fdata-sections -fPIC -m64
        HASHBANGPERL    = /usr/bin/env perl
        LDFLAGS         = 
        LDLIBS          = 
        PERL            = /usr/bin/perl
        RANLIB          = ranlib
        RC              = windres
        RCFLAGS         = 
    
    NOTE: These variables only represent the configuration view.  The build file
    template may have processed these variables further, please have a look at the
    build file for more exact data:
        /tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/build/src/Makefile
    
    build file:
    
        /tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/build/src/Makefile
    
    build file templates:
    
        /tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/build/src/Configurations/common0.tmpl
        /tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/build/src/Configurations/unix-Makefile.tmpl
        /tmp/cargo-installv59gJt/release/build/openssl-sys-ecdaa6b2ca6a7f60/out/openssl-build/build/src/Configurations/common.tmpl
    
    opened by AlexCzar 2
  • Trying to get in touch regarding a security issue

    Trying to get in touch regarding a security issue

    Hi there,

    I couldn't find a SECURITY.md in your repository and am not sure how to best contact you privately to disclose a security issue.

    Can you add a SECURITY.md file with an e-mail to your repository, so that our system can send you the vulnerability details? GitHub suggests that a security policy is the best way to make sure security issues are responsibly disclosed.

    Once you've done that, you should receive an e-mail within the next hour with more info.

    Thanks! (cc @huntr-helper)

    opened by JamieSlome 2
  • Bump version

    Bump version

    Version 0.3.6 fails to compile on Windows because of a use std::os::unix::ffi::OsStrExt;. This is fixed in the master branch but in the meantime it makes it impossible to do cargo install simple-http-server.

    opened by aochagavia 2
  • Become `wget -m`-friendly

    Become `wget -m`-friendly

    One typical application for Python's http.server is quickly getting several files over ad-hoc networks in combination with wget. For this to work well even across resumptions, I'd suggest to implement

    • Sending Last-Modified
    • Replying 304 to If-Modified-Since
    • Parse Range / serve Accept-Ranges and Content-Range

    Possibly, this is something that should be delegated to Iron's Modifier<Response> implementation for Path, or another generic "respond from file" mechanism.

    opened by chrysn 2
  • web server access only for the local machine

    web server access only for the local machine

    Is it possible to limit the web server to accept only the requests from the local machine? For example if a developer works in a local network with other developers and don't want the others to access his local web server.

    opened by bestia-dev 0
  • README title

    README title

    This is a wonderful project that's been very useful to me!

    Could I recommend updating the title to more idiomatic English? Any one of

    • How it looks
    • What it looks like
    • How does it look?
    • What does it look like?

    would be perfect.

    opened by clbarnes 0
  • Add libmagic to better process mime_types on Linux

    Add libmagic to better process mime_types on Linux

    Problem: serving files as application/application-octext-stream is annoying if the file is ASCII text

    Solution: When serving files on linux, libmagic can analyze the file to determine filetype when mime_guess has failed. Use libmagic to determine if a file is a plaintext file.

    Signed-off-by: Michael Mullin [email protected]

    opened by masmullin2000 1
  • certificates generated by mkcert cause `mac verify failure`

    certificates generated by mkcert cause `mac verify failure`

    I'm attempting to use simple-http-server with mkcert to create valid certs for local development. I'm generating a P12 cert with mkcert, but simple-http-server rejects it with mac verify failure.

    Here's a recording of the process:

    https://asciinema.org/a/tFAgoaVnHB1j9OsdG4YiIZJvq

    I'd guess this isn't simple-http-server's issue, just reporting it in case there's a known fix, or if anyone can point me to the library that's emitting the error (hyper?).

    opened by mwcz 0
Releases(v0.6.5)
Owner
LinFeng Qian
I think, therefore I am
LinFeng Qian
OxHTTP is a very simple synchronous HTTP client and server

OxHTTP is a very simple synchronous implementation of HTTP 1.1 in Rust. It provides both a client and a server.

Oxigraph 13 Nov 29, 2022
Low level HTTP server library in Rust

tiny-http Documentation Tiny but strong HTTP server in Rust. Its main objectives are to be 100% compliant with the HTTP standard and to provide an eas

null 785 Dec 29, 2022
Completely OBSOLETE Rust HTTP library (server and client)

OBSOLETION NOTICE This library is DEAD. It was a useful experiment and is now being replaced under the scope of the Teepee (experimentation grounds at

Chris Morgan 390 Dec 1, 2022
Archibald is my attempt at learning Rust and writing a HTTP 1.1 web server.

Archibald To be a butler, is to be able to maintain an even-temper, at all times. One must have exceptional personal hygiene and look sharp and profes

Daniel Cuthbert 4 Jun 20, 2022
Host These Things Please - a basic http server for hosting a folder fast and simply

http Host These Things Please - a basic HTTP server for hosting a folder fast and simply Selected features See the manpage for full list. Symlinks fol

thecoshman 367 Dec 23, 2022
Fully async-await http server framework

Saphir is a fully async-await http server framework for rust The goal is to give low-level control to your web stack (as hyper does) without the time

Richer Archambault 83 Dec 19, 2022
Node.js http server framework powered by Hyper native binding.

hnsjs POC project. Install this test package yarn add @hnsjs/core Support matrix node10 node12 node14 node15 Windows x64 ✓ ✓ ✓ ✓ Windows x32 ✓ ✓ ✓ ✓

LongYinan 18 Nov 23, 2022
RUSTENGINE is the high-assurance HTTP server.

RUSTENGINE Table of Contents RUSTENGINE Table of Contents About RUSTENGINE Inspiration with Rust Features Compares with Nginx Build & Run About this R

FUNNY SYSTEMS 10 Aug 27, 2021
A synchronous HTTP server built on hyper.

Astra Astra is a synchronous HTTP server built on top of hyper. use astra::{Body, Response, Server}; fn main() { Server::bind("localhost:3000")

Ibraheem Ahmed 23 Nov 27, 2022
Operator is a web server. You provide a directory and Operator serves it over HTTP.

Operator Operator is a web server. You provide a directory and Operator serves it over HTTP. It serves static files the way you'd expect, but it can a

Matt Kantor 6 Jun 6, 2022
Live Server - Launch a local network server with live reload feature for static pages

Live Server - Launch a local network server with live reload feature for static pages

Lomirus 18 Nov 30, 2022
Static Web Server - a very small and fast production-ready web server suitable to serve static web files or assets

Static Web Server (or SWS abbreviated) is a very small and fast production-ready web server suitable to serve static web files or assets.

Jose Quintana 496 Jan 2, 2023
simple static file server written in Rust based on axum framework

static-server simple static file server written in Rust based on axum framework I'm learning Rust and axum. My thought is simple. axum has a static-fi

null 27 Jan 1, 2023
VRS is a simple, minimal, free and open source static web server written in Rust

VRS is a simple, minimal, free and open source static web server written in Rust which uses absolutely no dependencies and revolves around Rust's std::net built-in utility.

null 36 Nov 8, 2022
Simple and fast web server

see Overview Simple and fast web server as a single executable with no extra dependencies required. Features Built with Tokio and Hyper TLS encryption

null 174 Dec 9, 2022
An HTTP library for Rust

hyper A fast and correct HTTP implementation for Rust. HTTP/1 and HTTP/2 Asynchronous design Leading in performance Tested and correct Extensive produ

null 11k Jan 7, 2023
[OUTDATED] A light HTTP framework for Rust

Rustful A light HTTP framework for Rust, with REST-like features. The main purpose of Rustful is to create a simple, modular and non-intrusive foundat

Erik Hedvall 873 Nov 12, 2022
:zap: fast http framework for rust

zap âš¡ The mission of zap is, to deliver a basic, but fast rust web server library. Documentation About This code is based on tokio's minihttp project,

Daniel Oltmanns 51 Jun 7, 2022
service_policy_kit is a Rust based toolkit for verifying HTTP services against policies.

Service Policy Kit service_policy_kit is a Rust based toolkit for verifying HTTP services against policies. You can: Build a complete testing framewor

null 19 Dec 5, 2022