Remix.run Logo
nicoburns 6 hours ago

This is built on top of Blitz (https://github.com/dioxuslabs/blitz): a new modular (open source) browser engine that I've been building for the last 2.5 years.

(I wasn't involved in building kitesurf, but I am informed that they intend to open source and upstream their patches)

ravetcofx 29 minutes ago | parent | next [-]

I hope Cloudflare Hires, Sponsors, or at least donates a good chunk of change you way.

hugs 5 hours ago | parent | prev | next [-]

any plans to support webdriver bidi for automation? (i'd be happy to help!)

[edit: for others reading who don't usually nerd out on browser automation protocols: webdriver bidi is the new-ish w3c cross-browser standard inspired by CDP - the main magic was the upgrade to websockets and also to standardize the capture of network-level traffic. there are still feature gaps between CDP and BiDi (in spec and implementation), but long term, i believe we should bet on web standards, not proprietary protocols controlled by one company.

(disclosure: i started the selenium and appium projects.)]

nicoburns 5 hours ago | parent | next [-]

> Long term, i believe we should bet on web standards, not proprietary protocols controlled by one company.

Totally agree.

Not sure if you're involved in the development / spec process for WebDriver Bidi, but the big limitation atm is that it has almost no support for the devtool inspection use cases served by the Chrome Devtools Protocol (CDP) and the Firefox Devtools Protocol (FDP).

The Servo and Ladybird browsers both have FDP implementations (and Blitz has an in-progress CDP implementation) for this reason. But we'd all love to switch to a single standardised protocol if it had the requisite support.

hugs 5 hours ago | parent [-]

thanks for the extra context. i'm friendly with devs working on the protocol, but looking for ways to get them more support.

nicoburns 5 hours ago | parent | prev [-]

It's definitely on the list of "things that would be nice to have eventually". It hasn't been very high up my personal list of priorities to build myself, but if you want to build it then I imagine we'd accept the patches (though I'd ideally like to see an implementation plan first).

(if kitesurf does upstream their patches then presumably we'll get a CDP-based automation API as part of that)

hugs 5 hours ago | parent [-]

ok, cool. looks like i should chat with the fine people at cloudflare, too.

HaloZero an hour ago | parent | prev [-]

Are you effectively building a separate renderer outside of Webkit?

Just curious on your thoughts about how Webkit was architected then, I guess it's not a modular system where you can separate out things like "Localstorage" support?

nicoburns 44 minutes ago | parent [-]

> Are you effectively building a separate renderer outside of Webkit?

Yes, it's new engine separate to Webkit/Blink/Gecko/Servo/Ladybird/etc

> Just curious on your thoughts about how Webkit was architected then, I guess it's not a modular system where you can separate out things like "Localstorage" support?

Honestly, I'm not super-familiar with Webkit's architecture. It's a huge codebase, and it's also C++ which is always pretty intimidating. I believe Webkit is more modular than most of the others, but Blitz goes quite extreme into modularity:

- The core is not coupled to the HTML parser

- The core is not coupled to the networking

- The core is not coupled to the rendering backend

- The core is not coupled to the windowing/input layer

- The core is not coupled to the JS/scripting engine

- The style engine (Stylo - shared with Servo and Firefox) is mostly implemented as a library which can be used independently

- The layout engine is mostly implemented in two libraries which can be used independently of the rest of the engine (Taffy for Flexbox/Grid/Block layout and Parley for Text/Inline layout)

So, yes I'd hope that it will be possible to individually opt-in to features like localstorage (once we implement them), but it goes a bit further than that.