Bilan de nos contributions Open Source en 2025

Par: Abilian 14/01/2026 Collaboration Tous les articles

Chez Abilian, l'Open Source n'est pas seulement un mode de distribution, c'est l'ADN de notre stratégie d'innovation. Depuis plus de dix ans, notre laboratoire de R&D s'efforce de concilier recherche industrielle de pointe (en collaboration avec l'Inria, l'ENS, etc.) et réalité commerciale.

Notre mission reste inchangée : concevoir les technologies de collaboration et d'infrastructure de demain.

Outre nos grands projets structurants (plateforme PaaS et outils de collaboration) qui continuent d'évoluer, nous avons créé en 2025 de nombreux outils open source destinés, en majorité, à améliorer la qualité, la fiabilité, la sécurité et la maintenabilité de notre écosystème logiciel. Voici un tour d'horizon de nos contributions majeures cette année.

En un coup d'œil, voici les 9 nouveaux projets majeurs de l'année 2025 :

  • Prezo : un outil TUI moderne pour projeter vos présentations Markdown directement depuis le terminal.
  • Validoc : la solution pour rendre votre documentation exécutable et la tester pour garantir qu'elle ne soit jamais obsolète.
  • KenobiX : une base de données documentaire locale ultra-rapide pour l'IA et la Data, propulsée par SQLite (et maintenant aussi par Postgres).
  • LeWAF : un pare-feu applicatif (WAF) natif et performant pour sécuriser vos applications Python (Django, FastAPI, Flask, Litestar...).
  • md2typst : un convertisseur robuste pour transformer vos fichiers Markdown en documents PDF de qualité via Typst.
  • py-capnweb : une implémentation Python du protocole RPC performant et sécurisé Cap'n Web.
  • CmisSH : un shell et une librairie moderne pour administrer et scripter vos GED historiques (CMIS).
  • WebDAV TCK : une suite de tests complète (portage de litmus) pour valider la conformité des serveurs WebDAV.
  • tstrings : un backport permettant d'utiliser dans les versions antérieures de Python la syntaxe des Template Strings introduite dans Python 3.14.

Voir ci-dessous le détail de ces contributions.

Nouveau projets en 2025

Prezo : vos présentations directement dans le terminal

Si les développeurs passent leur vie dans le terminal, pourquoi devraient-ils le quitter pour présenter leur travail ?

Le constat

Les outils de présentation traditionnels (Libreoffice, PowerPoint, Keynote, Google Slides...) imposent une rupture de contexte brutale. Ils nécessitent l'usage intensif de la souris, l'ajustement manuel de la mise en page, et stockent les données dans des formats binaires ou propriétaires difficiles à versionner avec Git.

La réponse : Prezo

Prezo est un outil de présentation TUI (Terminal User Interface) construit sur le framework moderne Textual.

Il permet de visualiser et de projeter des présentations écrites en simple Markdown (en suivant les conventions standards MARP ou Deckset), directement dans votre terminal. Plus besoin de quitter votre environnement de prédilection : vos slides sont du code.

Pourquoi l'utiliser ?

Prezo est un outil de présentation complet pensé pour l'expérience développeur ("DX") :

  • Navigation fluide : Support des raccourcis type Vim ou flèches directionnelles.
  • Live Reload : Modifiez votre fichier Markdown dans un panneau, la présentation se met à jour instantanément.
  • Riche en fonctionnalités : Support des images (via protocoles iTerm2/Kitty), mode présentateur avec notes, minuteur intégré, et thèmes multiples.
  • Exports : Possibilité de générer des PDF ou du HTML pour partager vos supports.

Demo

asciicast

validoc : la fin de la documentation obsolète

Validoc est un outil conçu pour résoudre un problème que tout développeur a déjà rencontré : la "documentation rot" (le pourrissement de la documentation).

Le problème

Rien n'est plus frustrant pour un utilisateur que de copier-coller une commande depuis un tutoriel et de voir le terminal renvoyer une erreur. Les logiciels évoluent, mais les README et les tutoriels restent souvent figés dans le temps.

La genèse

Nous avons créé validoc pour répondre à un besoin interne critique lors du développement de Hop3 (notre plateforme d'orchestration distribuée). Avec l'intégration de technologies complexes comme Nix dans Hop3, il était impossible de maintenir une documentation à jour manuellement sans risquer d'induire nos utilisateurs en erreur. Nous avions besoin que notre documentation soit notre test.

La solution Validoc

Validoc rend votre documentation (fichiers Markdown) exécutable et testable. Le principe est simple : vous annotez vos blocs de code dans votre Markdown, et validoc les exécute pour vérifier que le résultat correspond à ce qui est écrit.

Exemple :

```bash exec
echo "Hello, Abilian!"
```

```output contains
Abilian
```

En lançant validoc run tutorial.md, l'outil va exécuter la commande dans un environnement isolé (sandbox), vérifier la sortie, et garantir que votre tutoriel fonctionne réellement.

Ce que permet validoc :

  • Single Source of Truth : Le tutoriel devient un test d'intégration.
  • Nettoyage automatique : Les tests tournent dans des répertoires temporaires.
  • Flexibilité : Support de la création de fichiers, assertions HTTP, vérification de regex, etc.

Le projet est tout jeune et open source. Nous serions ravis d'avoir vos retours pour l'améliorer.

KenobiX : le chaînon manquant pour l'IA locale et la Data

L'année 2025 a confirmé une tendance lourde : le besoin de traiter des données non-structurées (documents, logs, résultats de scraping) pour alimenter nos agents d'IA et nos pipelines d'analyse massive.

Le constat

Jusqu'à présent, nous étions face à un dilemme pour nos projets R&D : utiliser des fichiers JSON plats (trop lents, pas de requêtes complexes) ou déployer des bases de données lourdes type MongoDB/PostgreSQL (trop complexes pour un usage embarqué ou local). Il nous manquait un entre-deux performant.

La réponse : KenobiX

C'est ainsi qu'est né KenobiX, à partir d'un fork de Kenobi. Il s'agit d'une base de données orientée documents, propulsée par la robustesse de SQLite3, mais optimisée pour la performance JSON.

Contrairement aux implémentations naïves qui stockent du JSON dans SQLite, KenobiX utilise intelligemment les colonnes générées virtuelles (Generated Columns) pour indexer dynamiquement les champs de vos documents.

Les résultats sont spectaculaires :

  • Des recherches jusqu'à 700x plus rapides (que Kenobi) que sur des fichiers plats ou des implémentations basiques.
  • Des mises à jour massives 80x plus véloces.
  • Une conformité ACID totale (vos données sont en sécurité, même en cas de crash).

Pour qui ?

KenobiX est taillé pour les développeurs Python qui ont besoin de manipuler entre 1 000 et 1 million de documents complexes sans l'overhead d'un serveur de base de données. Il inclut :

  • Un ODM (Object Document Mapper) moderne basé sur les dataclasses Python.
  • Le support des relations (ForeignKey, ManyToMany).
  • Une CLI pour inspecter vos données instantanément.
  • Un serveur Web pour naviguer dans son jeu de données.
  • En parallèle à SQLite, le support de PostgreSQL a été ajouté récemment (encore expérimental)

Si vous faites de la Data Science, du prototypage d'IA ou de l'outillage interne, KenobiX est l'outil léger et puissant qu'il vous faut.

LeWAF : la sécurité applicative (WAF) native pour Python

La sécurité des applications web ne peut plus être une réflexion après coup, ni reposer uniquement sur des équipements périmétriques coûteux.

Le constat

Protéger une application Python (Django, FastAPI, Flask...) contre les injections SQL, les failles XSS ou les attaques par commande nécessite souvent de configurer des reverse-proxies complexes (ex: Nginx avec ModSecurity) ou d'écrire des vérifications de sécurité répétitives au cœur du code métier. De plus, les exigences de conformité (PCI-DSS, RGPD, SOC 2) imposent des journaux d'audit que les frameworks standards ne fournissent pas par défaut.

La réponse : LeWAF

LeWAF (Lightweight Web Application Firewall) est une implémentation pure Python de la spécification OWASP Core Rule Set (CRS), déjà implémentée par ModSecurity/Coraza. Il s'intègre directement comme un middleware dans votre application. Il intercepte et analyse le trafic HTTP avant même qu'il n'atteigne votre code. LeWAF permet ainsi de bloquer automatiquement les menaces les plus courantes sans modifier une ligne de votre logique métier.

Pour qui ?

LeWAF est conçu pour les équipes DevSecOps et les développeurs Python soucieux de conformité et de sécurité.

  • Compatibilité totale : Fonctionne avec les frameworks synchrones (WSGI) et asynchrones (ASGI/Starlette/FastAPI).
  • Qualité industrielle : Le projet est livré avec une suite de plus de 1250 tests automatisés et une qualité de code irréprochable (100% typé).
  • Conformité : Il inclut le masquage automatique des données sensibles (mots de passe, tokens) dans les logs d'audit.

  • 👉 Le code : https://github.com/abilian/lewaf

  • 👉 Installation : uv add lewaf ou pip install lewaf

md2typst : un pont entre Markdown et l'édition scientifique moderne

Si Markdown a conquis le monde de la documentation technique et de la prise de notes, la production de PDF de haute qualité restait la chasse gardée de LaTeX... jusqu'à l'arrivée de Typst.

Le constat

Typst s'impose rapidement comme le successeur moderne de LaTeX : plus rapide, plus simple, et doté d'un langage de script fonctionnel puissant. Cependant, la majorité de notre base de connaissances (et celles de nos clients) est rédigée en Markdown. Il manquait un outil fiable pour transformer ces contenus existants en documents Typst prêts à l'impression, sans repasser par une réécriture manuelle ou des conversions hasardeuses.

La réponse : md2typst

md2typst est notre convertisseur robuste écrit en Python. Contrairement à des scripts regex fragiles, il repose sur une architecture solide :

  1. Il parse le Markdown (via markdown-it-py, mistune ou marko au choix).
  2. Il génère un AST (Arbre Syntaxique Abstrait) agnostique.
  3. Il compile cet AST en code Typst propre et idiomatique.

Pour qui ?

Cet outil s'adresse aux ingénieurs, chercheurs et rédacteurs techniques qui veulent combiner la fluidité d'écriture du Markdown (y compris les tableaux GFM, le code, les liens) avec la puissance de mise en page de Typst.

Il est conçu pour être intégré dans des pipelines de publication automatisés, grâce à une API Python claire et une CLI configurable via TOML.

Cap'n Web Python : le RPC sécurisé et performant pour le Web de demain

Dans les systèmes distribués, la communication entre services est le nerf de la guerre. Mais les solutions classiques montrent leurs limites, pour certains usages.

Le constat

Les protocoles RPC traditionnels (comme JSON-RPC ou REST) souffrent de deux maux majeurs :

  1. La latence réseau : Chaque appel nécessite un aller-retour (round-trip), ce qui s'accumule vite (le problème "N+1").
  2. La sécurité : Gérer qui a le droit d'appeler quoi nécessite souvent des systèmes d'ACLs complexes et fragiles.

La réponse : py-capnweb

Nous proposons une implémentation Python complète, moderne (async/await) et typée, du protocole Cap'n Web (initié par l'équipe derrière Cloudflare Workers).

Outre les fonctionnalité d'un système de RPC classique, ce protocole repose sur deux concepts clés :

  • La sécurité par Capacités (Capabilities) : Au lieu de vérifier "qui vous êtes" (identité), le système vérifie "ce que vous possédez" (une référence infalsifiable vers un objet distant). C'est intrinsèquement plus sûr pour les systèmes décentralisés.
  • Le Promise Pipelining : La "killer feature". Elle permet d'envoyer plusieurs appels dépendants en une seule requête réseau, sans attendre le résultat intermédiaire. Exemple : client.getUser().getProfile().getPicture() se fait en un seul aller-retour réseau au lieu de trois.

Pour qui ?

Cette bibliothèque est destinée aux architectes de systèmes distribués, de microservices ou d'applications P2P qui cherchent à minimiser la latence. Notre implémentation est déjà robuste (plus de 350 tests) et supporte des transports modernes comme HTTP Batch, WebSockets et même WebTransport (HTTP/3). Elle est de plus 100% interopérable avec l'implémentation de référence en TypeScript.

cmissh : Moderniser l'administration des GED historiques

Parce que l'innovation ne consiste pas toujours à tout réinventer, nous avons parfois besoin d'outils modernes pour interagir avec des systèmes legacy.

Le standard CMIS (Content Management Interoperability Services) ne fait plus la une de l'actualité tech, mais il reste la colonne vertébrale de nombreuses infrastructures documentaires d'entreprise (Alfresco, Nuxeo, SharePoint, IBM FileNet...).

Le retour du Shell

CmisSH est une réécriture complète en Python d'un outil historique auparavant développé en Java. Il répond à un besoin simple : comment naviguer dans un dépôt de documents distant aussi facilement que sur son propre système de fichiers ?

Un outil double fonction

CmisSH se présente sous deux formes :

  1. Une librairie cliente Python : Pour scripter des migrations ou des automatisations sur des GED compatibles CMIS (AtomPub ou Browser binding).
  2. Un Shell interactif : Un terminal avec auto-complétion, historique et commandes UNIX (ls, cd, cat, pushd, put, get) pour explorer et manipuler vos dépôts manuellement.

C'est un projet de "modernisation de l'existant", mais traité avec le même sérieux que nos nouveautés : le code est couvert par plus de 430 tests unitaires. Un "couteau suisse" indispensable pour les administrateurs systèmes et les intégrateurs qui gèrent encore ce type de patrimoine.

WebDAV TCK : moderniser la validation protocolaire

Si CMIS est la colonne vertébrale des GED d'entreprise, WebDAV reste le protocole universel pour le montage de lecteurs réseaux (Windows, macOS, Linux) et l'accès fichiers via le web (Abilian SBE, Nextcloud, etc.).

Le défi de la conformité

Développer un serveur WebDAV est notoirement difficile : le protocole (RFC 4918) est complexe et sous-spécifié, notamment concernant la gestion des verrous (locking) et des propriétés XML. Jusqu'à présent, l'outil de référence pour valider une implémentation était litmus, un vénérable logiciel écrit en C, difficile à étendre et à intégrer dans des pipelines CI/CD modernes.

Une réécriture moderne

Avec WebDAV TCK, nous avons réalisé le portage complet de litmus en Python moderne (async/await).

  • 100% de couverture : Nous avons implémenté les 68 tests de la suite originale (Opérations de base, Copy/Move, Propriétés, Verrous complexes de Classe 2).
  • Support "Large Files" : Validation du streaming pour les fichiers de plus de 2 Go.
  • Architecture Async : Basé sur httpx pour des tests performants.

Pour Abilian, cet outil est l'assurance que nos plateformes (et celles de la communauté) respectent scrupuleusement les standards, garantissant une interopérabilité parfaite avec les systèmes d'exploitation clients.

tstrings : Goûter à Python 3.14 en avance

L'évolution du langage Python continue, et la PEP 750 (Template Strings) promet de révolutionner la manière dont nous manipulons les chaînes de caractères structurées (SQL, HTML, Shell...), en apportant enfin une solution sécurisée contre les injections directement dans la syntaxe du langage.

Le constat

La syntaxe t"..." n'arrivera nativement qu'avec Python 3.14. Cependant, l'écosystème n'attend pas : les créateurs de bibliothèques veulent commencer à concevoir des APIs basées sur ce nouveau paradigme dès aujourd'hui, sans attendre que tous leurs utilisateurs migrent leur interpréteur.

La réponse : tstrings-backport

tstrings est un "backport" de la PEP 750 pour les versions de Python antérieures à la 3.14 (3.10+). Puisqu'il est impossible d'ajouter une nouvelle syntaxe à d'anciennes versions de Python, nous avons créé un équivalent fonctionnel. Au lieu d'écrire le littéral t"Hello {name}", vous utilisez l'appel de fonction t("Hello {name}").

Le résultat est identique à la spécification officielle : un objet Template exposant les parties statiques et les interpolations dynamiques, permettant aux développeurs de reconstruire la chaîne finale de manière contextuelle et sécurisée.

Pour qui ?

Ce projet est indispensable pour les auteurs de bibliothèques (ORM, générateurs de code, moteurs de templating) qui souhaitent adopter les standards du futur dès maintenant, tout en restant compatibles avec les environnements de production actuels. Il supporte déjà les spécificateurs de formatage complexes et le mode debug ({var=}).

Projets existants

Hop3 : vers une orchestration "Nixified"

Hop3 reste l'un de nos projets phares en 2025. Cette plateforme d'orchestration (PaaS) open source, conçue pour le Cloud et le Edge, vise à simplifier le déploiement d'applications distribuées tout en garantissant la souveraineté des données.

Cette année (et en 2026), l'accent a été mis sur le projet Hop3 Nixified, financé en partie par la Commission européenne et la fondation NLNet. L'objectif est ambitieux : intégrer le gestionnaire de paquets Nix au cœur de la plateforme. Cela nous permet de garantir :

  • Des environnements de construction parfaitement reproductibles.
  • Une flexibilité accrue lors du build.
  • Une meilleure résilience et cybersécurité des applications déployées.

Plus d'informations dans cette présentation à l'OSXP 2025:

Projets en maintenance

En parallèle de ces grands chantiers, nous continuons de maintenir et faire vivre nos briques technologiques historiques :

  • Abilian SBE : Notre framework de développement d'applications métiers collaboratives.
  • Flask-Vite : Notre pont entre le backend Flask et les outils frontend modernes (ViteJS), permettant une expérience de développement fluide (HMR, gestion des assets).
  • Abilian DevTools : Notre collection "opinionated" d'outils pour garantir la qualité du code Python.

Conclusion

2025 a été une année charnière où nous avons consolidé notre plateforme d'infrastructure (Hop3) tout en innovant sur l'outillage qui permet de les documenter et de les tester fiablement (validoc).

Nous vous invitons à tester validoc, à "star" nos dépôts GitHub et à contribuer. L'Open Source est une aventure collective, et vos retours sont notre carburant.

2025 a été une année dense pour la R&D d'Abilian. En plus de nos grands projets commerciaux (Hop3, SBE), nous avons choisi d'ouvrir le capot et de partager les outils qui nous permettent de construire des logiciels plus robustes, plus sûrs et mieux documentés.

Que vous soyez intéressé par la sécurité (LeWAF), la donnée (KenobiX) ou l'expérience développeur (Validoc, Prezo), nous espérons que ces briques trouveront leur place dans vos propres projets.

Nous vous invitons à tester ces outils, à nous faire vos commentaires, et, pourquoi pas, à proposer vos premières Pull Requests. Le logiciel libre est une aventure collective, et vos retours sont notre carburant pour 2026.

L'équipe R&D Abilian.