Remix.run Logo
▲ torginus 6 hours ago

How does this differ from CEF(Chromium Embedded Framework)?

That's also a fairly pared down version of the Chrome engine, designed for embedding used by tons of projects, like games for their in game lobbies or OBS for their Web overlays.

Personally, my problem with CEF is that it keeps Chrome fairly vanilla - and there's a lot of things in there that you wouldn't want to include in your user app.

But there's a reason they did it like this - if they really took an axe to Chrome's codebase, they'd basically lose the ability to upstream new versions.

Zebkit on the other hand sounds like it's gonna be more granular - we'll if they cope with this better, but I think there's definitely a market for a much more lightweight browser engine that's broadly compatible - for example, just getting rid of sandboxes and process isolation would be a huge but incompatbile change.

So would be dropping large modules like WebRTC or video playback or webusb or whatever, that I'm sure 99% of apps don't end up using.

▲Riiiiichard 6 hours ago | parent | next [-]

I agree with you on the core point: the same layer (zebkit embeds chromium using Content API), staying sync with upstream (it carries 60+ patches), the size reduce (using build options such as turning off features).

For the size, I have some more to address: the real weight comes from Blink, V8, skia, network stack and media. WebRTC cannot be dropped since Blink depends on it. Video playback is need by most apps so it stays. And the webusb is small, drop it has little benefit.

The main differences are mostly from shape, not the engine: 1. Exposed as a library with bindings (rust, python, JS without node) that can be run in your application's own event loop 2. Almost everything in the engine have a hook point such as permission, network, dialog, menus .. 3. Exported Chromium's C Library (such as boringssl, zstd, ffmpeg ..) for your app so you do not need compile it or ship it twice such as ELectron. 4. Exported feature rich PDF library (pdfium with improved) 5. Playwright inside, no cdp and no node are required

▲ 4 hours ago | parent | next [-]
[deleted]
▲ 6 hours ago | parent | prev [-]
[deleted]
▲c-smile 2 hours ago | parent | prev | next [-]

> there's definitely a market for a much more lightweight browser engine

Yep.

My sciter[.com] dll is about 18mb on Windows which is 10 times less than zebkit (171.2 Mb). And sciter's cold start (window creation, document loading and painting) is around 60ms that is 38 times less than 2.3 seconds of zebkit.

▲kodablah 3 hours ago | parent | prev | next [-]

Also note Google actively detects Chromium embedders like CEF via hidden heuristics and doesn't allow users to use it to login to any Google account. You are expected to do oauth in your native app instead.

If this gets popular, expect Google to block it too.

▲embedding-shape 5 hours ago | parent | prev | next [-]

> designed for embedding used by tons of projects, like games for their in game lobbies or OBS for their Web overlays.

Probably the two biggest user's of CEF (in terms of user base exposed to it daily) would be Steam and Spotify. Both relatively fast and efficient, compared to their peers, albeit the UX is another question.

▲qalmakka 6 hours ago | parent | prev | next [-]

Yes it would be interesting to know what the pros and cons of this are compared to CEF. CEF is a massive PITA so it would be great to have an alternative, honestly

▲Riiiiichard 5 hours ago | parent [-]

Where zebkit easier thane CEF: 1. setup: cargo add zebkit for rust, pip install zebkit for python. Golang bindings is planned 2. your event loop 3. a plain C api with rust, python, and node-free js bindings on the top 4. offscreen rendering 6. batteries: PDFium API, 7000+ API from chroium's or its dependencies 7. automation: playwright api in native with no cdp and node required 8. size: well, smaller but not much (1/3 smaller than latest electron, measured on linux)

Where CEF is still ahead: 1. Maturity: it's a product over decade and a big community, zebkit is rather young, but I will keep maintain it 2. platform: zebkit ships linux x64, macos sillicon and windows x64, cef covers mac intels, arm linux and many others. 3. missing pieces: zebkit has no printing, web bluetooth, wideevine and so on

Zebkit is still a young project, and I’d love to hear your feedback to help it keep improving.

▲Kwpolska 4 hours ago | parent | prev [-]

Simple: this is slop, CEF is not.

▲opengrass 4 hours ago | parent [-]

OK