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.
Articles similaires
Un développeur déploie l'intégralité de la législation espagnole sur GitHub
Ce projet open source prétend voir à travers vos murs avec un simple signal WiFi
Sécurité open source : les créateurs de l'IA mettent 12,5 millions de dollars sur la table pour éponger les dégâts
Un développeur déploie l'intégralité de la législation espagnole sur GitHub
Avec Arnis, recréez n'importe quel endroit du monde dans Minecraft
Ce projet open source prétend voir à travers vos murs avec un simple signal WiFi
Sécurité open source : les créateurs de l'IA mettent 12,5 millions de dollars sur la table pour éponger les dégâts
Plus de contenu
Le 31 décembre, à 16 heures
Quand j'ai 32 erreurs pour 10 lignes de code
Quand la QA signale un bug qui n’existe pas chez moi
Quand un recruteur veut m'ajouter à ses contacts sur LinkedIn
Quand le dev junior se lance seul sur son premier projet
Quand j'écoute le client et le product owner négocier le backlog du sprint
Quand on se prépare à accueillir toutes les visites du Black Friday
Quand je cherche une bibliothèque capable de me faire gagner plusieurs jours de dev pour mon projet
Le 31 décembre, à 16 heures
Quand j'ai 32 erreurs pour 10 lignes de code
Quand la QA signale un bug qui n’existe pas chez moi
Quand un recruteur veut m'ajouter à ses contacts sur LinkedIn
Quand le dev junior se lance seul sur son premier projet

