Hi, it’s bBenjamin Somers

I contribute to many open source projects. On this page, you can find a hopefully exhaustive, unsorted presentation of the various crimes I’ve committed in a selection of these projects.

Personal projectslab[0]FLOSS contributionsResElCAPRICAIMT AtlantiqueFuture projects

Personal projects

In the few hours I have left each week outside work and associative activities, I happen to work on a few fun projects of mine.

0xCAFE

bensmrs/0xCAFE

Fewer and fewer people carry cash around with them, and at the office, begging for money to feed the collective kitty to buy coffee is a nightmare. So I developed this little project, linked to Stripe, to manage the break room cash flow.

MaturityAReliabilityAField-testingA

bibedit

bensmrs/bibedit

bibedit is a program that allows to format a BibTeX bibliography in a homogeneous way, according to a number of policies. The code features some interesting experiments in OCaml, notably a preprocessor extention (PPX) that generates command-line parsers (we can pompously say it’s a command-line parser generator parser). The project is on hold due to a lack of time, and its PPX will soon be unbundled and developed as a standalone project.

MaturityCReliabilityBField-testingC

Carnac

bensmrs/carnac

Carnac is my playground for implementing some lambda calculus encodings into Menhir grammars. Because of Menhir’s grammar typing, arbitrary implementation choices have been made. Currently, Carnac encodes Church’s booleans and integers in Menhir.

MaturityAReliabilityAField-testingA

cronlib

bensmrs/ocaml-cronlib

cronlib is an OCaml library to parse crontabs. Nothing more for the moment!

MaturityCReliabilityB+Field-testingC

Gendarme

bensmrs/gendarme

Gendarme is an OCaml library to marshal and unmarshal OCaml data types to various serialization languages.

MaturityAReliabilityAField-testingB

ocamLDAP

bensmrs/ocamldap

I maintain a fork of ocamLDAP, the OCaml library to talk to LDAP servers. My fork makes connections non-blocking, better handles TLS and respects connection timeouts without SIGALRM tricks. Use it!

MaturityAReliabilityAField-testingA

PPX collection

bensmrs/ppx_catch/ppx_inline_module/ppx_macro/ppx_map

The day I discovered preprocessor extentions for OCaml was the beginning of a long love story! From time to time, I develop new PPXs to simplify my life and make my OCaml code even more expressive.

MaturityAReliabilityAField-testingA

This blog

bensmrs/blog

This blog is written in Markdown and converted into the current website with Pandoc, with a good amount of Lua filters.

MaturityAReliabilityAField-testingA

timed-cache

bensmrs/timed-cache

timed-cache is an OCaml library to implement almost-Hashtbl-compatible key-value stores with automatic time-based deletion strategies. I regularly use it as a function cache, where LRU or FIFO caches are not suitable.

MaturityA-ReliabilityAField-testingA

Yarec

bensmrs/yarec

Yarec, for Yet Another RexEx Compiler is a safe, non-explosive, quasi-PCRE-compatible RegEx engine. It is developed in OCaml and features an exotic recursive automaton data structure: states are actually small interpreters of a stack language able to recursively call other automata. The project is on hold due to a lack of time.

MaturityCReliabilityB+Field-testingC

lab[0]

lab[0] is the business name I’m using for some of my big projects. There is currently only one product under the 0WM umbrella.

0WM

0wm.lab0.cclab0-cc/0WM-Server/0WM-Client/0WM-OpMode/0WM-Models

0WM is a next-generation Wi-Fi mapping solution using off-the-shelf components and open standards to perform hassle-free, large-scale Wi-Fi surveys.

FLOSS contributions

Here are a few contributions I made in open source projects. I really liked how welcoming these projects’ communities were, and highly recommend exploring them.

Bareos

bareos/bareos

Bareos is an enterprise-grade backup solution supporting complex backup and recovery scenarios on disk and on tape. I developed a Bareos plugin for Incus, providing full and incremental backup and restores of Incus servers.

Git Cola

git-cola/git-cola

Git Cola is a graphical interface for Git written in Python. I’ve added to Git Cola the ability to manage local file exclusions, an option to reset the window layout, the ability to rename stashes, and a dialog for consulting Git server responses.

Incus

lxc/incus

Incus is a container and virtual machine manager written in Go. I added plenty of features to Incus across its codebase and became a maintainer of the project in 2026.

linuxcontainers.org

lxc/linuxcontainers.org

linuxcontainers.org is the showcase website for a group of projects with the goal of offering a vendor-neutral environment for the development of container technologies. I translated into French the part of the website presenting Incus, and made a few improvements in the website generator.

Nextcloud

nextcloud/server/files_versions_s3

Nextcloud is the most popular online drive management software. I helped add support for the naming and deletion of file versions in Nextcloud when using S3-compatible storage backends, using S3 object tags (in addition to metadata). The contribution has been merged into Nextcloud 27.0.1.

ResEl

The ResEl (for Réseau des Élèves) is a French student Internet service provider. It provides Internet access and many services to 1400 rooms on the IMT Atlantique campuses in Brest, Nantes and Rennes. I maintain and have participated in a large number of projects within the association.

DHCAPI

ResEl-TB/DHCAPI

DHCAPI is an API for FreeRADIUS that manages the discovery and request logic for the DHCP servers of the ResEl. It is written in Python, but will soon be rewritten in OCaml. The project was launched because of the many limitations of traditional DHCP solutions, given the complexity of the ResEl infrastructure.

MaturityAReliabilityA-Field-testingA

LaTeX styles and classes

ResEl-TB/latex

As a result of its activities, the ResEl needs to produce thousands of documents every year (invoices, reports, minutes, etc.). I designed and implemented the current visual identity for the LaTeX documents the association issues on a daily basis.

MaturityAReliabilityAField-testingA

myResEl

resel.frResEl-TB/myresel

Both a showcase website for the association and the portal for user account management, myResEl is without doubt the most important tool for our users. It is based on the Django framework. I have made many improvements to the design and functionality of the website over my years with the association, and developed a webplayer enabling our users to watch TV from within our network.

MaturityAReliabilityA-Field-testingA

RADAPI

ResEl-TB/RADAPI

RADAPI is an API for FreeRADIUS that manages the authentication, authorization and accounting logic for the RADIUS servers of the ResEl. Initially developed in Python, RADAPI was rewritten in OCaml for performance and safety reasons. I am the initiator of the project and its sole developer.

MaturityAReliabilityAField-testingA

ResEl ID

sso.resel.frResEl-TB/cas-overlay

ResEl ID is the centralized authentication service of the ResEl. It is based on the tried-and-tested Apereo CAS and enables users to log in to our various services with their ResEl account. I am responsible for the entire configuration and design of the website.

MaturityCReliabilityAField-testingB

ResEl NSA

ResEl-TB/resel-nsa

ResEl NSA is the metrics collection and dispatching agent of the ResEl. Entirely developed in Bash, it enables the parallel execution of monitoring tools and transmits data at regular intervals to a remote Warp 10 time series server.

MaturityAReliabilityA-Field-testingA

Vizir

ResEl-TB/vizir

Vizir is a documentation generation engine based on Sphinx. Its specificity lies in its ability to aggregate files from several Git repositories to generate one or more documentation projects. Vizir is developed in Python.

MaturityAReliabilityAField-testingC

CAPRICA

CAPRICA, for Cartographie, Analyse et Prévention des Risques sur des Infrastructures Complexes Actives, is the code name for my PhD project. During these three years, I have developed several tools, some of which are presented here.

CL/I

CAPRICA-Project/CL-I

CL/I is a formally-specified, component-oriented infrastructure description language that allows to perform automated property verification on IT infrastructures. The CL/I compiler can plug to model checkers and theorem provers (it has formally-defined transformation semantics into Z3), and embeds a small runtime engine. The compiler is written in OCaml

MaturityCReliabilityB+Field-testingC

emulab-proxmox

CAPRICA-Project/emulab-proxmox

To ensure the reproducibility of my thesis experiments, I have developed scripts to deploy a Proxmox VE hypervision cluster on Emulab.

MaturityAReliabilityAField-testingA

mitre2owl

CAPRICA-Project/mitre2owl/CAPEC.owx/CWE.owx

mitre2owl is a Python tool for translating MITRE XML reference datasets (CAPEC, CVE and CWE) into expressive OWL ontologies. It uses XSD schemas to build specialized parsers for the XML data, which in turn are used to build the ontologies. mitre2owl is used to build nightly versions of the ontologies automatically with GitHub Actions.

MaturityB+ReliabilityA-Field-testingB-

IMT Atlantique

Working at IMT Atlantique, I have had the opportunity to develop free and open source software. These projects are used regularly there, and I hope they can be of use to others elsewhere.

Accents

bensmrs/accents

Accents is a web application allowing students to compare their pronunciation of sentences with provided baseline recordings, to both improve their accent and help them understand the intricacies of the languages they learn.

MaturityCReliabilityB+Field-testingB

Spider

bensmrs/spider

Spider is a multi-protocol, multi-format, multi-threaded resource crawler. You can see it as your regular wget --spider, but on steroids, with support for several protocols, content types, schemes, and output formats.

MaturityCReliabilityBField-testingB

Future projects

I’ve got some big projects in the pipeline on which I haven’t yet found the time to do much work.

Deccert

Deccert is a project to build a decentralized, sharded CERT ecosystem between trusted network communities, to share the burden of risk management teams and systems and provide an entry point for smaller players based on the goodwill of larger players.

0TG

The Zero Transfer Gateway is a project to build a decentralized, multi-protocol data transfer monitor. If you’re not in the finance or automotive industries, chances are you’ve never heard of such a thing; I’d like to democratize these systems.

Tracer

I’m not a huge fan of visual programming. However, in some business-critical cases, it can be important to know precisely, visually, where things go wrong, why, and progressively patch code. I am working on an object- and data-oriented visual language with live-patching and A/B testing capabilities called Tracer.