Accueil Astuces et Informations 5 projets open source made in Twitter… en attendant l’algo ?

5 projets open source made in Twitter… en attendant l’algo ?

11
3
Twitter projets open source

En cours pour acquérir Twitter, Elon Musk souhaite en ouvrir l’algorithme. En attendant, quelles ont été les contributions du réseau social à l’open source ?
Publier l’algorithme de Twitter ? Elon Musk en un fait un de ses chevaux de bataille. L’idée n’est pas du goût de certains employés, qui l’ont fait savoir. Entre autres par l’intermédiaire du GitHub de l’entreprise. Y est apparu, la semaine dernière, un dépôt public « the-algorithm ». Avec rien dedans. Ce que d’aucuns ont interprété comme un troll. Il n’est resté en place que quelques heures, collectant toutefois quelque 5000 étoiles.

En attendant une éventuelle publication d’algorithme(s), le GitHub est déjà bien fourni. Le site vitrine qui l’accompagne affiche une centaine de projets au compteur.

Héron : le Spark de Twitter

Parmi eux, il y a Heron. Il s’agit d’un moteur générique de traitement de flux diffusé écrit en Java/C++/Python. Publié en 2016, il était passé deux ans plus tard sous l’aile de la Fondation Apache. Officiellement encore au stade d’incubation (dernière version : mai 2021), il s’architecture en conteneurs.

Chez Twitter, Heron a remplacé un autre moteur maison, lui aussi passé dans le domaine de l’open source : Apache Storm. Il est rétrocompatible avec lui (API et modèle de données). Mais y ajoute notamment l’isolation des tâches sous forme de processus, l’exploitation des ressources à la demande et une refonte architecturale qui améliore autant les débits que la latence.

Les entités de traitement (des graphes orientés acycliques, ici appelées topologies) sont écrites en Java ou en Python.

Rezolus : pour une télémétrie plus fine

Sous licence Apache 2.0 comme Heron, Rezolus avait basculé en Open source en 2019. Il s’agit d’un agent de télémétrie pour les systèmes Linux – avec une prise en charge limitée de macOS. Twitter l’a développé pour obtenir des mesures plus fines qu’avec son outillage précédent, qui échantillonnait à la minute.

Rezolus permet quant à lui de paramétrer la fréquence d’échantillonnage jusqu’à une précision de l’ordre de 200 ms. Ses sources : procfs, sysfs, le sous-système perf_events et l’interface BPF. Il peut aussi fonctionner comme proxy pour collecter des métriques (voir ici celles prises en charge) au niveau des applications.

Ébouillantage : Cascading en Scala

À l’image de Hive et de Pig, ce cadre Hadoop simplifie l’écriture de fonctions carte et réduire. Il exploite le langage Scala. Avec, sous le capot, la bibliothèque Cascading (implémentée dans d’autres langages : Lingual pour SQL, Cascalog pour Clojure…).

Scalding est ouvert depuis 2013, sous licence Apache 2.0. Twitter l’utilise entre autres pour le ciblage publicitaire et la prédiction de clics. LinkedIn s’en sert sur sa partie envoi par courrier électronique. Spotify, pour les recommandations musicales. Barclays, pour l’ETL.

TIP (Twitter Image Pipeline) : le pendentif iOS de Fresco

Le cadre TIP (licence Apache 2.0 ; dernière Libération : octobre 2020) s’intègre dans les applications iOS. Comme Fresco (de Facebook) que Twitter utilise sur Android, il gère le rendu des images, à l’appui de trois niveaux de cache. Il gère notamment l’intégration de codecs, le redimensionnement, la reprise des téléchargements et le jpeg progressif.

Twemoji : la collection Twitter

À travers ce projetqui compte près de 15 000 étoiles et 1600 fourches, Twitter met à disposition sa propre collection d’emojis Unicode, en PNG et SVG (licence CC-BY 4.0). On les retrouve notamment sur Discord, Roblox et des claviers tiers pour Android. Divers projets sont développés pour permettre d’implémenter Twemoji en Ruby, en .NET, au travers des classes CSS ou comme police par défaut sur Linux/OS X.

Illustration principale © GlebStock – Shutterstock