Zebkit macht Chromium zur Bibliothek, die man linkt – ohne Electron-Laufzeit

Zebkit – Chromium's engine as a library you link, not a runtime you live in

Zebkit macht Chromium zur Bibliothek, die man linkt – ohne Electron-Laufzeit

Zebkit bindet Blink, V8, PDFium und FFmpeg als eine einzige Bibliothek in bestehende Anwendungen ein – in C, C++, Rust, Python oder JavaScript. Die App behält ihren eigenen Event-Loop und ihre Fenster, statt in einer Electron-Laufzeit zu leben. Laut Projekt ist es 34 Prozent kleiner als Electron, startet kalt in 2,3 statt 6,6 Sekunden und braucht 29 Prozent weniger Speicher pro Seite. Playwright läuft nativ im Engine-Prozess, drei- bis zehnmal schneller als über CDP.

Electron ist eine Basis: Eine Anwendung wird in ihr gebaut, auf ihrer Laufzeit, ihren Fenstern und ihrem Packaging. Zebkit ist ein Teil: Eine Anwendung fügt es hinzu, wie sie SQLite hinzufügt, und behält ihren Prozess, ihr Toolkit und ihre Art des Auslieferns.
  1. torginus

    Wie unterscheidet sich das von CEF (Chromium Embedded Framework)? Das ist auch eine ziemlich abgespeckte Version der Chrome-Engine, die für das Einbetten konzipiert ist und von unzähligen Projekten genutzt wird, etwa von Spielen für ihre In-Game-Lobbys oder von OBS für seine Web-Overlays.

    Persönlich ist mein Problem mit CEF, dass es Chrome ziemlich unverändert lässt – und da drin ist eine Menge Zeug, das man in seiner User-App nicht haben möchte. Aber es gibt einen Grund, warum sie es so gemacht haben: Wenn sie wirklich die Axt an Chromes Codebasis legen würden, würden sie praktisch die Fähigkeit verlieren, neue Versionen einzupflegen.

    Zebkit hingegen klingt, als würde es granularer werden – mal sehen, ob sie damit besser zurechtkommen, aber ich denke, es gibt definitiv einen Markt für eine viel leichtere Browser-Engine, die breit kompatibel ist – zum Beispiel wäre es eine enorme, aber inkompatible Änderung, einfach Sandboxes und Prozessisolierung loszuwerden. Genauso wäre es, große Module wie WebRTC oder Videowiedergabe oder WebUSB oder was auch immer wegzulassen, die, da bin ich sicher, 99 % der Apps nicht nutzen.

  2. joahnn_s

    Ich verstehe es nicht. CEF existiert; warum lädt man es als Shared Lib/CFFI? Du setzt deinen App-Prozess nur all den Problemen aus, die ein Browser haben kann, einschließlich Sicherheitsproblemen. In den meisten Sprachen bringt CFFI den gesamten App-Prozess zum Absturz, da es derselbe Prozess ist. Vielleicht für persönliche Sachen geeignet, aber nichts Ernstes.

  3. saidnooneever

    Warum 'zeb'? Es ist ein vulgäres Wort für Penis. Man hätte es besser wählen können, da es scheinbar nichts anderes dort drin zu tun hat... vielleicht ist es Absicht, was mich an der Qualität des Projekts zweifeln ließe. Was, wie es scheint, andere Kommentatoren auch diskutieren.

  4. netshade

    Schön. Ich bin ein starker CEF-Nutzer bei ZShot ( https://zshot-app.com , https://zshot-cli.com ), aber ich bin ganz bei dir, dass diese Art von Sache einfacher zu integrieren sein sollte.

    Außerdem bin ich ganz bei dir, was die Exposition dieser Libs (wie PDFium und FFmpeg) für Verbraucher angeht – es senkt die Auslieferungslast erheblich und ermöglicht einfach so viel.

    Ein Hinweis an alle, die diesen Weg gehen, nur nebenbei: Das tatsächliche Ausliefern mit Chromium (und besonders mit FFmpeg) kann kompliziert werden. Wenn du auf Mac OS auslieferst, solltest du darauf achten, alle deine Helfer zusammen mit deinem Hauptprozess zu notarisieren (ich nehme an, Zebkit läuft noch mit Helferprozessen). Ähnlich bei FFmpeg, wenn du gegen die FFmpeg-Libs linkst. Und bei FFmpeg solltest du einfach validieren, dass deine Lizenz-Compliance tatsächlich dem entspricht, was du ausliefern willst – FFmpeg hat GPL- und LGPL-Modi, also ist es wichtig sicherzustellen, dass du den richtigen ausgewählt hast. Wenn ich mich recht erinnere, ist Blink ebenfalls LGPL, also hat die Sicherstellung, dass du die dortigen Anforderungen erfüllst, einige wichtige Auswirkungen auf die Distribution.

  5. prologic

    Das ist ziemlich interessant! Ich habe einen Webbrowser für GoNix (https://gonix.dev) mit dem CEF (Chromium Embedded Framework) erstellt, was ziemlich gut funktioniert, aber Shared Memory und eine Pipe erfordert; Chromium als Bibliothek einzubetten klingt noch faszinierender. Ich könnte das mal ausprobieren! Danke fürs Teilen!

Mehr von diesem Tag

2026-11-09