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

Quand j'ai la solution à mon bug en pleine nuit
Quand le responsable sécu apprend qu'on a les accès root sur tous nos environnement de prod

Quand je retourne sur mon disque dur alors que je bosse sur un SSD depuis plus d'un an
Quand j'importe mes modules Node JS

Concours Les Joies du Code : un kit bien-être Logitech à remporter sur Instagram !

Quand je cherche la parenthèse manquante dans mon code
Quand je tape chmod 777 juste pour voir si ça marche

Quand toute l'équipe se met à chercher d'où vient le bug bloquant qu'on nous a remonté

Quand j'ai la solution à mon bug en pleine nuit
Quand le responsable sécu apprend qu'on a les accès root sur tous nos environnement de prod

Quand je retourne sur mon disque dur alors que je bosse sur un SSD depuis plus d'un an
Quand j'importe mes modules Node JS

Concours Les Joies du Code : un kit bien-être Logitech à remporter sur Instagram !


