# FISE

> File server over HTTP, written in C.

Winter 2026 · C

![FISE](https://pixel-9487cf1e.deplo.site/projects/fise/cover.png)

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](https://github.com/PixelFederico/fise)
- [FISE Web](https://github.com/PixelFederico/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.

Back to [all projects](https://pixel-9487cf1e.deplo.site/projects.md).
