Awesome
Tiniest vWeb Server
The efficient multiplatform open source solution to host your static stuff, written in V, using the new x.vweb vlib. It fits in a single binary < 1 MB, without compression! It's a single binary, easy to compile, light and fast.
I use it to host my tech blog.
Compile V from source
If you don't have V installed, you can compile it from source:
git clone https://github.com/vlang/v
cd v && make
./v symlink
Compile the server
Once you have V installed, clone this repository and build with the following command:
v -prod .
Binaries for ARM64 Linux, macOS, x86_64 Linux, macOS, Windows are available. You can download them and SHA256/512 sums from the releases page.
Run the server
Run the with the following command. It will serve files from the public
folder by default:
./tws
To check if everything is fine, open your browser and go to http://localhost:8080
. If you use the content of this repository, you should see content of the index.html
file from the public
folder.
You can also use the curl
command:
curl http://localhost:8080
<h1>Hello, world!</h1>
Configuration
You can specify the folder where your files are located:
./tws /path/to/your/folder
To change the port:
./tws 4242
./tws /path/to/your/folder 4242
Custom headers
You can define some headers adding a headers.toml
file where the server is running:
cache_control = "max-age=3600"
# Delay in seconds added to the date/time of the request to define `Expires` header
expiration_delay = 3600