Send in your ideas. Deadline April 1, 2026
Grant
Theme fund: NGI0 Commons Fund
Start: 2025-08

WireGuard as a MirageOS unikernel

Implement WireGuard in OCaml and run as unikernel

MirageOS unikernels are tiny self-contained operating systems (often used as virtual machines), and WireGuard is a widely used modern VPN protocol. Our main aim of this project is to implement a WireGuard client, installable on all Linux and BSD systems. Instead of encrypting/decrypting information in user space (as all WireGuard clients) do, this client will however deploy a unikernel which will take care of this task.

We extend this work to the implementation of a server running as a unikernel, as well as the development of a dedicated unikernel-based QubesOS integration. The implementation of this protocol will benefit the OCaml community and should be reusable outside the unikernel context.

Run by Robur

Logo NLnet: abstract logo of four people seen from above Logo NGI Zero: letterlogo shaped like a tag

This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429. Additional funding is made available by the Swiss State Secretariat for Education, Research and Innovation (SERI).