Thème d'affichage

Insolite : un client Bluesky codé en Fortran (et il fonctionne vraiment)

Nicolas Lecointre · 23 Mar 2026 à 12h52
Insolite : un client Bluesky codé en Fortran (et il fonctionne vraiment)

Ni React, ni Electron — Former Lab vient de publier fortransky sur GitHub : un client terminal pour le réseau social Bluesky, intégralement écrit en Fortran. Pour ceux qui auraient des doutes, la description du repo le confirme : "Yes, that Fortran."

Quand on pense Fortran, on a d'ailleurs plutôt pour habitude de penser à des simulations météorologiques, des modèles climatiques, ou encore des trajectoires balistiques sur supercalculateurs. Mais effectivement, on ne pense pas au scroll d'un fil de posts sur un réseau social décentralisé.

Vous vous demandez peut-être pourquoi ? Et je vous répondrai : pourquoi pas ?

Le langage a été créé par IBM en 1957, et avait déjà quelques décennies bien tassées derrière lui avant que le Web n'existe.

Bienvenue en 1957 (connecté en 2026)

fortransky est un TUI (terminal user interface) complet : connexion à Bluesky, lecture du flux, likes, reposts, quote-posts.

Aperçu de Fortransky

La session est persistée dans `~/.fortransky/session.json` et restaurée au prochain lancement. Les app passwords sont supportés (la doc insiste : pas le mot de passe principal), les tokens JWT aussi.

Le client propose deux modes de connexion : jetstream, qui passe par le WebSocket Bluesky classique en JSON, et relay-raw, qui se connecte directement au relay AT Protocol en binaire sur WebSocket.

Détail qui mérite (que dis-je, qui impose) le respect : le parsing JSON est fait entièrement à la main en Fortran, avec un scanner de clés à suivi de profondeur. Pas de lib externe, pas de triche. Eh ouais, à l'ancienne, ma gueule.

Trois langages, sept décennies

Fortran seul aurait du mal avec les API web modernes. FormerLab a donc construit un pont : le module `iso_c_binding` (interface d'interopérabilité avec le C introduite dans Fortran 2003) appelle une couche C/libcurl pour les requêtes HTTP.

Pour décoder le firehose (le flux brut et continu de tous les événements du réseau) en mode relay-raw, c'est une bibliothèque Rust compilée en statique qui prend le relais. Concrètement, elle réceptionne le flux binaire tel qu'il sort du relay Bluesky et le transforme en JSON lisible, que le TUI Fortran consomme ensuite tranquillement.

On est quand même sur un assemblage qui traverse sept décennies de langages, et ça tient ! Fortran pour l'interface et la logique, C comme pont réseau, Rust pour le décodage binaire : quelques mégaoctets de binaire compilé, sans node\_modules de ses morts ni Chromium embarqué.

La roadmap de l'absurde

Le plus beau, c'est que Former Lab ne s'arrête pas là.

La roadmap prévoit un support des images via du dithering Floyd-Steinberg (l'algo du premier Mac, 1984), un décodeur en assembleur x86-64 pour les frames AT Protocol, et un compositeur de feeds avec algorithme maison en Fortran.

Et comme ça ne suffisait pas, le développeur a commencé à décliner le concept : Assemblersky en assembleur, et Cobolsky en Cobol. Sur ce dernier, l'équipe concède tout de même que le projet en Cobol est, de loin, beaucoup plus douloureux. On veut bien le croire.

Aperçu de Cobolsky

En attendant le client Les Joies du Code en Brainfuck, vous pouvez justement me suivre de manière plus conventionnelle sur Bluesky ! 😉

À propos de l'auteur

Nicolas Lecointre

Nicolas Lecointre

Chief Happiness Officer des développeurs, ceinture noire de sudo. Pour rire, j'ai créé Les Joies du Code. J'utilise Vim depuis 10 ans parce que je sais pas comment le quitter.

Voir sa page auteur

À lire également

Articles similaires