#server #etag #dist #local #cache #cacher #directory-server #in-memory #serve-static

nightly bin+lib impulse-static-server

Simple static server

4 releases

Uses new Rust 2024

new 1.0.0-alpha.9 Feb 3, 2026
1.0.0-alpha.6 Nov 14, 2025
0.12.0-alpha.3 Jul 21, 2025

#2 in #dist

MIT and GPL-3.0-or-later

35KB
504 lines

impulse-static-server

Simple static server. Features:

  • running on top of impulse-server-kit (see configuration example)
  • serves all your files from dist or /usr/local/frontend-dist/ folder
  • when receives any request other than /, it returns index.html, excluding files
  • provides in-memory cache for files less than 16 MiB via CustomStaticRouter::new_with_cacher or by default - with ETag and Last-Modified

Build

This project is supporting Deployer. You can build server with:

deployer build

Or, alternatively, just build with cargo:

cargo build --release

Usage

  1. Place your files inside dist folder.
  2. Place impulse-static-server executable near dist folder.
  3. Start ./impulse-static-server.

[!NOTE] There is no need to specify working dir, static server must work with distribution files placed nearly.

Usage as a library

Just include it into your Cargo.toml:

[dependencies]
impulse-static-server = { git = "https://github.com/impulse-sw/impulse-kit.git", tag = "0.11" }

and use one of these functions:

  • frontend_router - same behavior as the binary Static Server
  • frontend_router_from_given_dist - you can specify any dist folder you want

Dependencies

~69–95MB
~2M SLoC