← Projects

FISE

File server over HTTP, written in C.

FISE uploads and downloads files over a small HTTP API. It is written in C around a single epoll event loop, verifies Ed25519-signed JWTs and serves resumable downloads, all from a compiled binary of about 44 KB.

GitHub / FISE Web

One event loop

Connections are handled with epoll, so a single process keeps thousands of concurrent uploads and downloads moving without a thread per client.

Signed, not stored

Uploads need a JWT signed with Ed25519, deletes need one whose payload says admin: true. The server only holds the public key, in /etc/fise/pubkey; leave it empty and authentication switches off.

Resumable by default

Downloads honour HTTP Range requests and answer 206 Partial Content, so a dropped transfer picks up where it stopped. Uploads go up to 15 GB.

Small enough to forget

The whole server compiles to about 44 KB and ships with a Dockerfile and a Compose file. FISE Web, written in Vue, puts a dashboard on top of the same API.