2 points par GN⁺ 2024-02-07 | 1 commentaires | Partager sur WhatsApp
  • Alors que les moteurs de navigateurs Web sont concentrés entre les mains de quelques entreprises, Ladybird est un projet indépendant qui crée un nouveau moteur à partir de zéro, sans forker un moteur existant
  • La première Alpha vise Linux et macOS en 2026 ; le projet est actuellement en développement actif, avec les développeurs et les early adopters en ligne de mire
  • Le projet se concentre sur son objectif de moteur fondé sur les standards du Web, et met en avant comme différence son absence d’accord de recherche par défaut, de token crypto et de monétisation des utilisateurs
  • Développé en open source public, il est possible d’y participer via des rapports de bugs, des cas de reproduction minimaux, des tests de sites Web, des signalements de problèmes de sécurité et des retours techniques
  • Les dons et les sponsorings sont sa seule source de financement, et les sponsors n’ont aucune influence sur la feuille de route technique ni sur l’orientation du produit

Objectifs et état actuel de Ladybird

  • Ladybird est un projet qui crée un nouveau moteur de navigateur Web à partir de zéro
  • Il est actuellement en développement actif, avec pour objectif de publier une première Alpha pour Linux et macOS en 2026
  • Le Web est une plateforme importante dans l’informatique, mais les moteurs de navigateurs qui font fonctionner l’ensemble du Web sont peu nombreux, et chacun est contrôlé par une entreprise spécifique
  • Ladybird est un projet qui vise à créer un moteur indépendant centré sur les standards du Web

Ce que le projet met en avant comme différenciation

  • Indépendance totale

    • Le projet construit un nouveau moteur sans utiliser le code de moteurs de navigateurs existants comme Blink, WebKit ou Gecko
  • Un seul objectif

    • Le projet se concentre sur une seule chose : créer un navigateur Web
  • Aucune monétisation des utilisateurs

    • Il n’utilise pas d’accord de recherche par défaut, de token crypto ni d’autres méthodes de monétisation des utilisateurs

Évolutions récentes du développement

  • Changing How We Develop Ladybird
    • Dans le cadre de la préparation à la mise à disposition du navigateur auprès d’utilisateurs réels, le projet modifie la façon dont le code y est intégré
  • This Month in Ladybird - May 2026
    • Inclut notamment le passage de Cloudflare Turnstile, le défilement asynchrone dans le compositor out-of-process, l’activation par défaut des Media Source Extensions, le JIT WebAssembly, le blocage de contenu natif, un parseur HTML basé sur Rust, un cache sur disque du bytecode JS, ainsi que CSS @container, @scope et subgrid
  • This Month in Ladybird - April 2026
    • Inclut notamment un visualiseur PDF inline basé sur pdf.js, un frontend GTK4, l’historique de navigation, le parsing HTML spéculatif, la compilation JS hors thread, le DNS asynchrone et le CSS anchor positioning
  • This Month in Ladybird - March 2026
    • Inclut notamment un interpréteur assembleur écrit à la main, le parsing hors thread, un nouveau moteur d’expressions régulières, l’IPC Mach port, les favoris, CSS if(), inherit(), @container et @function, ainsi que l’invalidation de styles
  • This Month in Ladybird - February 2026
    • Inclut notamment l’adoption de Rust, une refonte de l’édition de texte, des travaux de performance sur YouTube et Reddit, ScrollTimeline, CSS @counter-style et le relayout partiel SVG
  • Ladybird adopts Rust, with help from AI
    • Le projet adopte Rust comme successeur de C++ et utilise des agents IA pour accélérer la transition

Participation et build

  • Ladybird est un projet open source développé publiquement par une petite équipe
  • Les contributeurs peuvent participer en signalant des bugs, en rédigeant des cas de reproduction minimaux, en testant des sites Web, en signalant des problèmes de sécurité et en partageant des retours techniques
  • Il est possible de cloner le code et de l’exécuter en local
$ git clone https://github.com/LadybirdBrowser/ladybird.git
$ cd ladybird
$ ./Meta/ladybird.py run

Financement et principes de sponsoring

  • Ladybird fonctionne entièrement grâce aux dons et sponsorings
    • Pas d’accord de recherche
    • Pas de collecte de données
    • Pas de publicité
  • Les sponsors sont affichés sur le site Web et dans les mises à jour du projet, et la durée du sponsoring est d’un an
  • Les montants de sponsoring sont les suivants
    • Platinum : 100 000 $
    • Gold : 50 000 $
    • Silver : 10 000 $
    • Bronze : 5 000 $
    • Copper : 1 000 $
  • Les demandes de sponsoring sont reçues à l’adresse contact@ladybird.org
  • Les dons individuels peuvent être effectués via Donorbox, sous forme de don ponctuel ou mensuel récurrent
  • Pour les dons importants, il est recommandé de prendre contact directement afin d’éviter les frais de traitement

Contraintes de la FAQ et plans futurs

  • La première Alpha vise Linux et macOS en 2026, et s’adresse aux développeurs et aux early adopters
  • Ladybird dispose actuellement d’une petite équipe d’ingénierie à plein temps, et reçoit des tests, rapports de bugs, signalements de sécurité et retours techniques de la communauté
  • La taille de l’équipe est stable, et les plans de recrutement seront réexaminés si les besoins du projet changent
  • Le projet cherche à conserver en permanence 18 mois de runway
  • Dire qu’il ne s’agit pas d’un fork d’un moteur existant signifie que le projet n’utilise pas le code de Blink, WebKit, Gecko ni d’un autre moteur de navigateur
    • Pour des raisons historiques, il utilise plusieurs bibliothèques du projet SerenityOS
    • Depuis que Ladybird a été forké depuis SerenityOS, il n’est plus lié à la culture consistant à tout écrire à partir de zéro
    • Il utilise des bibliothèques tierces pour des fonctionnalités communes comme les formats image, audio et vidéo, le chiffrement et les graphismes, y compris certaines bibliothèques également utilisées par d’autres navigateurs
  • La prise en charge de Windows se fera par étapes
    • La CI compile et teste déjà le moteur JavaScript sous Windows
    • La prise en charge Windows du moteur de navigateur complet arrivera dans une phase ultérieure
    • Les ingénieurs à plein temps se concentrent actuellement sur macOS et Linux
  • Les plateformes mobiles ne sont pas l’objectif actuel
    • Davantage d’efforts seront consacrés à Android et iOS une fois que la version desktop sera en meilleur état
  • Le sponsoring prend la forme de dons sans restriction
    • Les sièges au conseil d’administration ou d’autres formes d’influence ne sont pas à vendre
    • Les sponsors n’ont pas leur mot à dire sur la feuille de route technique ni sur l’orientation du produit
  • Ladybird ayant commencé comme un projet C++ au sein de SerenityOS, la base de code a démarré en C++ et reste majoritairement en C++
    • Le projet a ensuite adopté Rust comme successeur de C++
    • Les sous-systèmes sont progressivement portés vers Rust
    • Plus de détails sont disponibles dans l’annonce de l’adoption de Rust

1 commentaires

 
GN⁺ 2024-02-07
Commentaires Hacker News
  • Voir lui et ses collègues hackers construire un nouveau navigateur indépendant à partir de zéro est vraiment encourageant
    Vu l’ampleur des effectifs et des financements, je n’aurais pas pensé que ce soit possible
    Je me demande aussi si l’on voit enfin aujourd’hui le résultat de navigateurs mieux standardisés sur « 95 %+ » des fonctionnalités populaires, et si, de ce fait, écrire un navigateur est devenu plus simple aujourd’hui qu’il y a 10 ans, quand il fallait en créer et en maintenir un
    Le Web continue d’évoluer, mais il paraît plus stable qu’il y a 10 à 15 ans, et les anciens développeurs n’avaient pas de feuille de route aussi aboutie qu’aujourd’hui lorsqu’ils ont commencé à concevoir des navigateurs
    Aujourd’hui, il existe déjà un énorme corpus de standards du Web, et avec le temps on sait aussi ce qui a réellement été populaire, donc il est plus facile de définir les priorités du support Web moderne
    En apparence, tout semble plus volumineux, mais je pense aussi qu’il y a davantage d’idées qu’on peut écarter. Il fut un temps où Internet Explorer prenait en charge XSLT et où FTP était courant
    Modification : XSLT est toujours pris en charge par tous les principaux navigateurs, mais il est très peu utilisé et reste bloqué à XSLT 1.0, donc cela semble faire partie des éléments que l’on peut omettre sans risque pendant assez longtemps

    • Merci, et je suis vraiment fier de toutes les personnes qui ont travaillé dessus avec moi
      Je travaille par intermittence sur des navigateurs depuis 2006, et l’environnement actuel est complètement différent
      Les spécifications sont meilleures que jamais, et les tests disponibles sont devenus un véritable trésor
    • Ce n’est pas devenu plus facile. Il y a toujours un monopole dominant, sauf qu’il ne s’appelle plus Microsoft
      Si quelqu’un menace la position de Google, Google peut déverser de l’argent, créer des standards inutilement complexes et les implémenter dans Blink pour forcer les concurrents à suivre
      Même pas besoin de passer par le W3C. Si ça fonctionne dans Chrome, les développeurs web l’adoptent, et les petits moteurs doivent finir par le prendre en charge pour ne pas perdre la part de marché qu’il leur reste
      L’importance stratégique du contrôle d’Internet aujourd’hui est encore plus grande qu’à l’époque où Microsoft était au sommet, il y a 20 à 30 ans
    • C’est peut-être vrai par rapport à il y a 10 ans, mais si l’on remonte de plusieurs décennies, il y avait bien moins de choses à prendre en charge, rien qu’en HTML
      Il suffit de comparer https://www.ietf.org/rfc/rfc1866.txt et https://html.spec.whatwg.org/multipage/
      Écrire un navigateur web a toujours été difficile pour diverses raisons, mais aujourd’hui construire un navigateur pleinement fonctionnel est une tâche gigantesque, et de nouvelles fonctionnalités continuent encore d’être ajoutées avec l’attente qu’elles soient prises en charge
    • Probablement pas. Il existe certes des standards du Web et une meilleure intuition de conception, mais il est fort possible que le volume total d’API et de fonctionnalités HTML/CSS qu’un navigateur doit prendre en charge évolue plus vite que le rythme auquel l’équipe de Ladybird peut les implémenter activement
      La surface des API est devenue sans commune mesure avec celle d’il y a 10 à 15 ans : https://developer.mozilla.org/en-US/docs/Web/API
      Et cela n’inclut même pas JavaScript, MathML, SVG, les fonctionnalités de sécurité fondées sur HTTP, la cryptographie ou les mises à jour du support multimédia
    • La plateforme web continue de s’améliorer. En tant que personne qui vit du développement web depuis 1998, je suis heureux de voir des initiatives comme Interop 2024 et Web Platform Tests accélérer l’adoption et la fiabilité des fonctionnalités essentielles de la plateforme
      1. https://www.webkit.org/blog/14633/get-ready-for-interop-2024...
      2. https://wpt.fyi
  • C’est vraiment étonnant qu’une personne ait commencé à créer tout un système d’exploitation à partir de zéro juste pour le plaisir et pour faire quelque chose d’intéressant, et qu’elle ait fini par produire par accident l’un des nouveaux moteurs de navigateur les plus prometteurs de ces 10 à 20 dernières années
    Je regarde les vidéos de développement depuis un ou deux ans, et il est difficile de croire à la vitesse des progrès réalisés en si peu de temps
    Il y a maintenant plusieurs bénévoles, et même assez de soutien financier pour rémunérer plus d’un développeur, donc la suite est assez enthousiasmante

    • C’est un expert de classe mondiale en rendu web et un développeur C++ extrêmement compétent
      L’un des secrets de cette réussite, c’est qu’il traduit directement de nombreuses spécifications en code, ce qui est aujourd’hui sans doute ce qu’il y a de mieux. Il applique aussi fortement une approche guidée par les tests
      Quand on dit « à partir de zéro », cela va jusqu’à ne pas utiliser la bibliothèque standard C++ et inclure sa propre classe de chaînes ; pour le meilleur ou pour le pire, comme c’est un projet fait « juste pour le plaisir » et « pour apprendre », cela passe
      Au moment où l’on se disait déjà que la bibliothèque et l’OS relevaient de la folie, il a annoncé vouloir y ajouter un navigateur et un moteur JavaScript, puis un compilateur JIT, puis, n’étant totalement satisfait ni de C++ ni de Rust, il est allé jusqu’à créer son propre nouveau langage, Jakt
      Plus encore que son expertise, ce qui force le respect, c’est son humilité et sa gentillesse. Contrairement à Linus et à d’autres, il n’est pas dans l’auto-promotion ; dans chaque vidéo, il cite les noms des personnes qui ont fait quoi et leur attribue le mérite. C’est un excellent modèle pour l’open source
    • Il n’a pas travaillé quelques années chez Apple dans l’équipe WebKit ?
      Cela reste impressionnant, mais ce n’est pas non plus un parfait débutant quand on parle de développement de navigateurs
    • Rien qu’avec les liens, je ne vois pas très bien : qu’est-ce qui en fait un moteur prometteur ?
    • J’ai découvert ce projet via un épisode du podcast co-recursive, et l’histoire était intéressante : https://corecursive.com/serenity-os-with-andreas-kling/
    • Que pourrait-il se passer exactement ? Pourquoi a-t-on besoin d’un nouveau moteur de navigateur ?
  • J’espère que cela deviendra un navigateur utilisable au quotidien. Le nouveau moteur de rendu est excellent, et j’aimerais aussi que Servo réussisse.
    Je pourrais même envisager d’y contribuer, mais la coordination du développement se fait sur Discord, et j’évite les logiciels propriétaires… [1]
    C’est regrettable, mais comme c’est un projet mené pour le plaisir, on ne peut pas vraiment leur en vouloir.
    [1] https://drewdevault.com/2022/03/29/free-software-free-infras...

    • Cet article était assez pénible à lire. J’apprécie souvent ce que dit Drew, mais là, ça me paraît excessif.
      Il qualifie d’« ouvertement égoïstes et contraires à l’éthique » les auteurs qui promeuvent leurs logiciels open source via des canaux comme Twitter, Hacker News, LinkedIn ou GitHub.
      Ce genre de dogmatisme est difficile à supporter, et donne l’impression d’imposer une définition de la liberté et de l’open source hostile aux gens qui veulent simplement créer quelque chose de chouette et le partager avec le monde, voire gagner de l’argent avec du FOSS.
      Il est surprenant d’avoir des positions aussi tranchées tout en publiant des billets comme « Can I be on your podcast »[1] pour promouvoir son langage de programmation Hare.
      Il ne cherche pas uniquement des podcasts qui ne sont pas distribués sur des plateformes comme Spotify ou Apple Podcasts, et fait effectivement la promotion de Hare à travers plusieurs interventions.
      Cela donne une impression d’hypocrisie.
      [1]: https://drewdevault.com/2023/11/09/Can-I-be-on-your-podcast....
    • Il me semble que HN aussi est un logiciel propriétaire.
  • J’aime bien ce passage de la FAQ :
    « Pourquoi faire cela ? On ne peut pas créer un nouveau moteur de navigateur sans des milliards de dollars et des centaines d’employés. »
    « Si, on peut. N’écoutez pas les défaitistes bras croisés qui n’ont jamais construit de navigateur. »

  • C’est agréable de voir que la concurrence existe encore dans le développement des moteurs de navigateur. Il y a aussi Servo, autrefois lié à Mozilla : https://servo.org/
    Cela dit, Servo comme Ladybird restent encore très immatures par rapport à des navigateurs destinés à un usage quotidien.
    C’est assez dommage qu’il n’y ait pas de build nightly de Ladybird à tester, mais c’est probablement parce qu’ils ne veulent pas recevoir de rapports de bugs. Si presque rien ne fonctionne, accumuler des bugs au hasard n’a pas vraiment de sens.

    • La dernière fois que j’ai essayé, compiler Ladybird ne prenait pas très longtemps.
      Bien sûr, c’était à un moment l’an dernier et c’est peut-être plus lent aujourd’hui, mais on est quand même loin d’une compilation de Chromium qui dure 9 heures.
    • Le paquet Ladybird existe sur AUR https://aur.archlinux.org/packages/ladybird-git, FreshPorts https://www.freshports.org/www/ladybird et HaikuPorts https://depot.haiku-os.org/ladybird
    • Il ne faut pas non plus oublier WebKit. Cela a mené à des projets comme https://surf.suckless.org
    • Si je me souviens bien, l’absence de build s’explique par le fait qu’en obligeant les gens à compiler eux-mêmes, on s’assure que les utilisateurs et ceux qui ouvrent des issues ont un certain niveau de compétence technique.
      Du point de vue des mainteneurs, cela simplifie la vie, et il est probable que cela change à mesure que le projet mûrira.
  • Ces captures d’écran de progression sont vraiment excellentes : https://serenityos.org/happy/1st/

    • Quand on regarde les horodatages, la vitesse de progression au début, lorsqu’il travaillait seul, est réellement impressionnante.
      En matière de programmation, il donne vraiment l’impression d’être un développeur polyvalent hors pair.
  • Si l’on fait une expérience de pensée, à quoi ressemblerait un nouveau type de navigateur pour un nouveau type de Web ? Une grande partie de CSS est vieillissante
    Donc on peut se demander si une version « moderne », centrée notamment sur CSS Grid et Flex, ne pourrait pas offrir les mêmes fonctionnalités sans superflu
    Ce genre de vieux sujets comme la disposition en trois colonnes du Saint Graal, par exemple
    Cela fait aussi penser à canvas, threejs, react-three-fiber et react-drei. Surtout sur mobile, est-ce que canvas ne pourrait pas offrir une meilleure expérience utilisateur ?
    Qui écrit des jeux mobiles en HTML et CSS ? Ce n’est pas impossible, mais je me demande combien de sites web ont réellement besoin de HTML et CSS plutôt que de canvas
    Un gros obstacle à la concurrence entre navigateurs, c’est qu’il faut implémenter des technologies vieilles et obsolètes. Ne pourrait-on pas se limiter à un minimum de HTML et à canvas ?

    • J’ai déjà un peu travaillé sur un moteur de navigateur par le passé, même si c’était il y a longtemps
      Je doute que cela aide beaucoup
      La surface des API web a explosé comme une explosion cambrienne, et les éléments modernes éclipsent les anciens. Même si on supprime la prise en charge de mécanismes anciens ou peu utilisés, on ne réduit pas autant qu’on l’imagine le code et la complexité
      Au-delà d’une simple surface réduite, implémenter un « profil cœur limité » compétitif, surtout dans une approche entièrement from scratch avec les performances en tête, exige un niveau d’ingénierie très élevé
      Il y a aussi un fort effet de longue traîne : même la plupart des sites web modernes dépendent encore ici et là d’éléments anciens, donc il se peut que presque aucune page ne fonctionne correctement dans un tel navigateur hypothétique
      Cela reste donc un projet extrêmement vaste et difficile. Bien sûr, la communauté du FOSS a déjà mené à bien pas mal de projets vastes et difficiles, donc cela ne veut pas dire que c’est impossible
    • J’aimerais qu’on cesse de suivre la tendance de Google à transformer le Web en OS pour servir son modèle publicitaire et ses profits liés au suivi des utilisateurs
      Si l’on veut créer une app, connectée ou non, on a déjà Internet et les OS. Il n’y a pas besoin de dégrader davantage les interfaces en se battant contre le navigateur
      C’est particulièrement important pour les jeux ou d’autres logiciels complexes
      Le cœur originel du Web, ce sont des documents reliés par des hyperliens, parfois avec du multimédia, et un peu d’interactivité ajoutée par des formulaires et des scripts
      Pour voir à quel point la situation actuelle est étrange, il suffit d’imaginer un univers parallèle où, au lieu de Google, c’est Adobe qui serait devenu gigantesque, et où le JavaScript dans les PDF serait détourné pour créer des apps
    • Qu’est-ce qui est exactement obsolète dans CSS ? float et inline-block ont encore des usages légitimes
      border-box a aussi résolu l’essentiel des souffrances des années 2000. L’idée semble bonne, mais je ne vois pas vraiment ce qu’on pourrait supprimer
      Les tableaux restent aussi le meilleur choix pour de vraies données tabulaires
    • Il semble exister des frameworks modernes qui rendent tout via WebGL/WebGPU sur canvas
  • Fils connexes en cours et anciens billets
    Interview with Andreas Kling of Serenity OS (2022) - https://news.ycombinator.com/item?id=39286638 - février 2024, 134 commentaires
    Ladybird browser update (July 2023) [video] - https://news.ycombinator.com/item?id=36939402 - juillet 2023, 1 commentaire
    Chat with Andreas Kling about Ladybird and developing a browser engine - https://news.ycombinator.com/item?id=36620450 - juillet 2023, 65 commentaires
    Shopify Sponsored Ladybird Browser - https://news.ycombinator.com/item?id=36502583 - juin 2023, 1 commentaire
    I have received a $100k sponsorship for Ladybird browser - https://news.ycombinator.com/item?id=36377805 - juin 2023, 166 commentaires
    Early stages of Google Docs support in the Ladybird browser - https://news.ycombinator.com/item?id=33511831 - novembre 2022, 84 commentaires
    Github.com on Ladybird, new browser with JavaScript/CSS/SVG engines from scratch - https://news.ycombinator.com/item?id=33273785 - octobre 2022, 1 commentaire
    Ladybird: A new cross-platform browser project - https://news.ycombinator.com/item?id=32809126 - septembre 2022, 473 commentaires
    Ladybird: A truly new Web Browser comes to Linux - https://news.ycombinator.com/item?id=32014061 - juillet 2022, 8 commentaires
    Ladybird Web Browser - https://news.ycombinator.com/item?id=31987506 - juillet 2022, 2 commentaires
    Ladybird Web Browser – SerenityOS LibWeb Engine on Linux - https://news.ycombinator.com/item?id=31976579 - juillet 2022, 2 commentaires

  • Pendant que Mozilla revend des services de protection de la vie privée, d'autres construisent de meilleurs navigateurs
    Il n'y a même pas besoin de 6 milliards de dollars

    • Mozilla a clairement des problèmes de gestion. Mais le produit est bon, voire très bon
  • Andreas Kling et le projet SerenityOS, c'est bien, mais je n'aime pas qu'il soit uniquement sur Twitter
    Mastodon semble parfaitement correspondre à son audience

    • Je ne sais pas trop. Il est assez constant dans sa volonté de voir les choses positivement, et Mastodon semble être un espace bien plus en colère que Twitter
      Twitter l'était davantage avant aussi, mais depuis le rachat par Elon, on a l'impression que les personnes les plus en colère ont migré vers Mastodon
      Sur Mastodon, cette ambiance me paraît très marquée et difficile à éviter
    • Il existe un miroir sur Mastodon : @awesomekling@bird.makeup