webserve

Crates.iowebserve
lib.rswebserve
version0.1.0
created_at2025-04-25 04:42:50.876334+00
updated_at2025-04-25 04:42:50.876334+00
descriptionA lightweight web server
homepage
repository
max_upload_size
id1648515
size55,413
Mark Wayne Menorca (marcuwynu23)

documentation

README

webserve

Stars Badge Forks Badge Issues Badge License Badge

A blazing-fast static file and SPA Web server written in Rust, powered by warp. Supports live reload, SPA fallback, and directory serving โ€” like npm serve, but compiled and production-ready.


๐Ÿš€ Features

  • โœ… Serve any directory (-d ./dist)
  • โœ… SPA fallback support (--spa)
  • โœ… File watching with automatic browser reload (--watch)
  • โœ… Configurable host and port (-h, -p)
  • โœ… Built with Rust + Tokio for high performance

๐Ÿ“ฆ Installation

git clone https://github.com/your-username/webserve
cd webserve
cargo build --release

The executable will be located in target/release/webserve.

You can also install it globally (requires Rust):

cargo install --path .

๐Ÿ›  Usage

webserve [OPTIONS]

Options

Flag Description Default
-d, --dir Directory to serve files from Current directory
-p, --port Port to listen on 8080
-h, --host Host/IP to bind 127.0.0.1
--spa Enable SPA fallback (404 โ†’ index.html) disabled
-w, --watch Enable file watching + auto-reload disabled

๐Ÿงช Example

Serve a Vite/React app from ./dist, with SPA fallback and live reload:

webserve -d ./dist --spa --watch

๐Ÿ’ป Injected Reload Script

When --watch is used, index.html is automatically injected with:

<script>
  const socket = new WebSocket(`ws://${location.host}/reload`);
  socket.onmessage = () => location.reload();
</script>

๐Ÿ“ Project Structure

webserve/
โ”œโ”€โ”€ src/
โ”‚   โ””โ”€โ”€ main.rs         # Web server logic
โ”œโ”€โ”€ Cargo.toml          # Dependencies
โ””โ”€โ”€ README.md

๐Ÿ“œ License

MIT ยฉ Mark Wayne Menorca

Commit count: 0

cargo fmt