Tiniest Veb Server
September 29, 2024 ยท View on GitHub
The efficient multiplatform open source solution to host your static stuff, written in V, using the new veb 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:
./tVeb
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:
./tVeb /path/to/your/folder
To change the port:
./tVeb 4242
./tVeb /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