A flat, systematic list of my software projects. Raw repository list: github.com/aryx?tab=repositories.
I’m the main author of most of these (often also the single author), except Coccinelle, co-authored with Julia Lawall.
| Project | Description |
|---|---|
| xix | A from-scratch rewrite, in OCaml, of Plan 9 — the windowing system and userland so far, eventually also the kernel. |
| syncweb | A literate programming tool that lets you edit either the code or the literate doc and stay in sync both ways, fixing the biggest complaint about original literate programming tools (which required editing only the doc, code being generated/extracted one-way). |
| ocaml-caps | Capability types and rules for OCaml. |
| ocaml-elm-playground 0.1.7 | The playground before any AI: an OCaml library for pictures/animations/small games, modeled on Evan Czaplicki’s Elm playground package. |
| ocaml-commons | OCaml standard library extensions. |
| ocamltarzan | (deprecated) Compile-time reflection / metaprogramming for OCaml. |
| Semgrep | Static analysis tool: find bugs using rules that look like the code they match. |
| osemgrep | My personal fork of Semgrep, since leaving the Semgrep company; focused on OCaml/C improvements and LSP support. |
| semgrep-pfff-libs / semgrep-pfff-langs | Parsing libraries behind Semgrep. |
| pfff | A big monorepo of language parsers and tools built on them (semantic search/grep, semantic patch, refactoring, visualization, …), from my Facebook years. Ancestor of semgrep-pfff-libs/langs, Semgrep, and codemap/codegraph below. Also used internally at Facebook by closed-source tools such as checkModule, a dead code analyzer, and dynamic/static test-coverage indexing and test-runner optimization (à la Echelon, a Microsoft Research paper from around 2010) — mostly bug-finding tools for what would now be called appsec (the term didn’t exist yet in 2010). |
| codemap | Source code visualizer (treemap). Now mostly superseded by codemap v2, below. |
| codegraph | Source code dependencies visualizer. Now mostly superseded by codemap v2, below. |
| codequery | Querying a codebase using Prolog. |
| codecheck | A multi-language whole-program analysis code checker. |
| yacfe | (deprecated) Yet Another C Front-End: style-preserving C/C++ transformations. |
| Coccinelle | A program transformation engine for C, co-authored with Julia Lawall. |
| lfs | Logic file system. |
Code almost entirely written by an AI (Claude Code), under my direction: I choose the design and review, the AI writes the lines.
| Project | Description |
|---|---|
| IX | xix made tiny: the whole Principia Softwarica system, from an ARM emulator to the C toolchain and the shell, in small but real OCaml programs. |
| the playground | An OCaml library for pictures/animations/games, started (by hand, up to 0.1.7, see above) as a port of Evan Czaplicki’s Elm playground package, plus about 150 games and 50 applications that made computing history, each rebuilt in miniature to be read. Spinoffs: tinybox, codemap v2, and mini-chrome, below. |
| tinybox | The playground’s games and applications in one menu (and one executable, after BusyBox), playable in your browser. |
| codemap v2 | A new codemap, part of the playground: a codebase drawn as a map, to be read from the whole down to a single line, with its dependencies drawn on it too; runs on any directory (manual). Mostly supersedes codemap and codegraph. |
| mini-chrome | A small web browser written from scratch in OCaml, all the way down: its own HTML, CSS, and JavaScript engines, its own network stack (HTTP, TLS 1.3), developer tools, and it can even draw with the playground’s own software rasterizer; started as the playground’s TinyChrome and grows from there, towards the web as it is. |
Originally written by others, but extended and often reorganized by me (and lately also Claude Code).
| Project | Description |
|---|---|
| principia-softwarica | Plan 9 (Bell Labs: Ken Thompson, Rob Pike, and others), repurposed as a teaching operating system, in C. |
| goken9cc | Portable multi-architecture toolchain rooted in the Plan 9/Inferno toolchains (later extended by Go developers), extended further to Linux/macOS/Windows. |
| xv6-multiarch | Unifying the many architecture-specific forks of MIT’s teaching OS xv6 (Russ Cox, Frans Kaashoek, and Robert Morris). |
| chidb | A teaching database engine, originally by Borja Sotomayor and Adam Shaw (UChicago). |
| ocaml-light | OCaml 1.07, originally by Xavier Leroy et al. (INRIA), stripped of objects and functors, for teaching. |
| tigerc-- | Fork of the Tiger front end for C-- (Paul Govereau), a compiler for the Tiger language from Andrew Appel’s textbook. |
| quickc-- | Fork of Quick C-- (Norman Ramsey), a compiler for the C-- portable assembly language. |
| efuns | An Emacs clone, originally by Fabrice Le Fessant (INRIA); I took over maintenance in 2015. |
| mmm | My fork of the OCaml MMM web browser, originally by Francois Rouaix (INRIA). |