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.

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.

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
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.
À lire également

Passbolt : le gestionnaire de mots de passe open source que votre équipe mérite vraiment
Je connais l’histoire, vous la connaissez, on la connaît tous. Le stagiaire qui est resté six mois, qui a fini par avoir accès à un peu (beaucoup) plus de choses...
Articles similaires

La Python Software Foundation refuse 1,5 million de dollars du gouvernement américain

"Je voulais juste régler mon problème" : il y a 20 ans, Linus Torvalds créait Git


JetBrains lance son agent de programmation Junie sur GitHub et améliore l’AI Assistant de ses IDE

La Python Software Foundation refuse 1,5 million de dollars du gouvernement américain

"Je voulais juste régler mon problème" : il y a 20 ans, Linus Torvalds créait Git

TypeScript devient le langage le plus utilisé sur GitHub

JetBrains lance son agent de programmation Junie sur GitHub et améliore l’AI Assistant de ses IDE
Plus de contenu

Le 31 décembre, à 16 heures
Quand mon npm install se lance sur l'installation de 847 dépendances

Quand le chef passe dans l'open space et que je fais semblant de bosser
Quand on me demande de corriger un bug sur un projet auquel je n'ai jamais touché

Quand je lance un tout dernier build le vendredi soir

Quand je retourne sur mon code après les vacances de Noël

Quand le presta chiffre 15 jours pour une migration de base et que l'outil de rapport automatique indique 5 minutes
Quand la doc tient sur une seule ligne avec un lien mort

Le 31 décembre, à 16 heures
Quand mon npm install se lance sur l'installation de 847 dépendances

Quand le chef passe dans l'open space et que je fais semblant de bosser
Quand on me demande de corriger un bug sur un projet auquel je n'ai jamais touché

Quand je lance un tout dernier build le vendredi soir


