5 projets open source made in Meta… ou plutôt Facebook

Ne l’appelez plus Facebook, mais Meta. Officiellement, le groupe américain a adopté cette nouvelle marque en octobre 2021. Il reste toutefois encore des traces de l’ancienne. Par exemple à la racine de son GitHub. Les dépôts s’y comptent par centaines. Parmi eux, ceux de Docusaurus, Flipper, Fresco, Jest et Zstandard.

Jest : un framework référent de test JavaScript

Facebook avait créé Jest en 2011, dans le cadre de la réécriture de sa fonctionnalité de chat en JavaScript. Il l’avait mis en open source trois ans plus tard, sous licence MIT. En 2016, un ancien de la maison reprenait la main, avec une équipe dédiée au projet. En 2018 s’y greffait une entité destinée à aider les employés d’autres entreprises à apporter leurs contributions.

Il y a quelques semaines, Jest a rejoint la fondation OpenJS. Laquelle héberge déjà, entre autres, AMP, Electron, jQuery et Node.js. Le framework comptait alors, selon les chiffres officiels, 17 millions de téléchargements par semaine. Airbnb, Amazon, Spotify, Stripe et Twitter font partie de ses utilisateurs. À leur disposition, un large catalogue d’extensions, allant des plug-in pour IDE aux outils de débogage et de reporting.

Flipper : un débogueur Android, iOS et JS

FlipperSur le volet débogage, Meta a dans son escarcelle la plate-forme Flipper. Plate-forme, au sens où cette application Electron repose sur un système de plug-in. Notamment pour l’accès aux bases de données, les notifications de crash, la détection des failles mémoire, l’analyse réseau et le développement en bac à sable.

Facebook utilisait auparavant Stetho, une passerelle de débogage Android fondée sur les DevTools Chrome. Avec Flipper (ex-Sonar), publié licence MIT en 2018 2018, Flipper, il a élargi sa cible aux apps iOS, React Native et JavaScript.

Docusaurus : des sites web pour l’open source

DocusaurusCe générateur de sites web sous licence MIT utilise le langage MDX. Il produit du HTML statique dans lequel on peut embarquer des composants React. Orienté vers les projets open source, il propulse notamment le site vitrine de Flipper. Ou encore celui de Redwood (framework Jamstack).

La v2 de Docusaurus est officiellement encore en bêta même si elle a atteint la parité fonctionnelle avec la v1. Elle inclut notamment une gestion des versions, la traduction via Crowdin et Algolia pour la recherche.

Zstandard : compresser vite et bien ?

Cet algorithme de compression de type LZ fait l’objet d’une spécification IETF (RFC 8878). Son implémentation de référence, en C, est sous double licence (BSD et GPLv2). Il existe de nombreux portages, dans les principaux langages et dans divers logiciels (7-zip et WinRAR, cURL, Django, wget…).

L’une des particularités de Zstandard est d’utiliser un dictionnaire évolutif (mode « entraînement ») pour optimiser la compression des petits fichiers. Le tableau ci-dessous donne une idée de ses performances. Les données proviennent d’un benchmark lzbench sur un système Ubuntu 20.04 (noyau 5.11.0.41-generic) doté d’un i7-9700K.

benchmark zstd Meta

Fresco : le pendant Android de TIP

Fresco MetaPubliée en 2015 (licence MIT), la bibliothèque Fresco s’intègre dans les applications Android. Comme TIP que Twitter utilise sur Android, elle gère le rendu des images, à l’appui de plusieurs niveaux de cache. Au menu, entre autres : prise en charge des vignettes EXIF, des URI multiples, du jpeg progression, de la rotation et du redimensionnement après traitement. Le support des GIF animés et du format WebP est optionnel, sous la forme de modules complémentaires.

Illustration principale © Meta