June in Servo: real world compat, media queries, SharedWorker, and more
Posted by iamnothere 3 days ago
Comments
Comment by Fervicus 2 days ago
Comment by bobajeff 2 days ago
Comment by kingwill101 2 days ago
Comment by int0x29 2 days ago
Comment by GoblinSlayer 2 days ago
Comment by gregdaniels421 2 days ago
I don't know what that would mean in this context. Did you mean the js stdlib regex implementation? Any help?
Comment by chaz6 2 days ago
https://github.com/servo/servo/releases/tag/0.4.0
Prior releases included a preceding 'v' in the version but not this one for some reason.
Comment by bobajeff 2 days ago
Comment by minraws 2 days ago
Comment by bobajeff 2 days ago
Comment by fabrice_d 2 days ago
Comment by Fizz43 1 day ago
Comment by blurbleblurble 2 days ago
Comment by 9cb14c1ec0 2 days ago
Comment by ChrisSD 2 days ago
Comment by esprehn 2 days ago
Comment by ChrisSD 2 days ago
Comment by dabinat 2 days ago
Comment by nicoburns 2 days ago
Comment by TingPing 2 days ago
Comment by sieabahlpark 2 days ago
Comment by akiselev 2 days ago
That's hardly a fair assessment when large parts of Servo were mainlined into Firefox years before Ladybird even existed. Stylo, their CSS engine, landed in Firefox 57 in 2017 replacing ~160k lines of C++ with ~85k lines of Rust.
Servo wasn't originally really intended as a browser competitor. It was the flagship experimental project of the Rust language to replace parts of Firefox with memory safe implementations, which it pulled off in style. It's only recently that people have picked it back up as a browser project, years after Mozilla killed the development.
Comment by Klonoar 2 days ago
It’s also no longer a Mozilla project.
Comment by NetOpWibby 2 days ago
It's been a decade plus and new browsers have come out in that time.
Comment by acephal 2 days ago
Comment by cyberax 2 days ago
It's obviously not ready yet, but it's also not "infinitely far" anymore. I'm donating to them, because I think that they're the only realistic successor to the dying Firefox.
Comment by Permik 2 days ago
Comment by rpdillon 2 days ago
Comment by cyberax 2 days ago
It was used to render the UI in apps like our favorite McAfee antivirus.
This niche is still wide open. Electron apps are just terrible, and a focused fast embeddable browser engine would be very welcome.
Comment by nicoburns 2 days ago
Source: https://github.com/dioxuslabs/blitz
Status: https://blitz.is/status/css
Typical binary sizes are around 10-20mb, although you can go smaller by doing things like excluding features or compiling with `Os`/`Oz`.
There's no JavaScript yet (which can also be a benefit of course!), but people have recently started experimenting, and we may well start on this soon.
Comment by cyberax 2 days ago
Comment by nicoburns 2 days ago
With this you can actually run regular React DOM (so fully compatible with deploying the same codebase to web). There is then the potential to mix in native components, although that's not fully built-out today.
Finally, as part of this project we develop Dioxus Native (see https://github.com/DioxusLabs/dioxus and https://dioxuslabs.com). This allows you to write your app in a React-like framework in Rust, which also allows you to write a single codebase and compile to both native (desktop/mobile) using Blitz and to web (compiles to WASM, renders using real DOM nodes).
Comment by cyberax 1 day ago
It'd really interesting to try static Hermes with it ( https://github.com/facebook/hermes/tree/static_h ).
iOS is braindead and doesn't allow JITs, so regular JavaScript is not a good option.
Comment by Rohansi 2 days ago
I agree with you but throwing web standards out the window like Sciter is a non-starter. One of the benefits of Electron apps is still having the option to run it in your browser.
Comment by cyberax 2 days ago
It doesn't have to implement _all_ the standards, just a subset that is compatible with the full set. So that if you can develop an app within that subset and have it working in other browsers. But not necessarily vice versa.
Comment by Rohansi 2 days ago
Comment by cyberax 2 days ago
Comment by Rohansi 1 day ago
Comment by GoblinSlayer 2 days ago
Comment by Rohansi 2 days ago
Comment by GoblinSlayer 2 days ago
Comment by Rohansi 2 days ago
Comment by Rohansi 2 days ago
Comment by Xirdus 2 days ago
Comment by adzm 2 days ago
Comment by Xirdus 2 days ago
If you can't implement most of the web standards (not even all, just most of them), then one of the following will happen:
- your engine will never catch on (best case scenario) - your engine will be forever known as "this browser where nothing works" and will be perpetually ignored in all discussions about cross-browser compatibility, nullifying any positives that could come from its existence - worst possible outcome: your engine gains market share, gets treated seriously, and the global development of all new web standards stagnates until you can catch up, which means over a decade of zero innovations.
And you CANNOT implement most web standards[1]. There's too many of them, they all interact with each other too much, the engineering effort required is comparable with rewriting all of Linux from scratch.
And of course there's security. A massive project like that will have massive code complexity, which leads to enormous number of security holes. Chrome and Firefox are mostly secure because their maintainers spent literal decades fixing the holes. They have 20 year headstart over you in making it secure, and they don't have to play catch up with web standards like you do. Everybody using your engine is therefore at a much greater risk of getting hacked than if they sticked with Chrome. And that's assuming you use Rust. If you don't use Rust, then security would be so bad it's not even funny.
None of it matters if you're just making a personal project for the heck of it, of course. Go do it! Have fun! It doesn't matter if you use Rust or not because nobody will use it anyway, so pick whatever tech stack you like the most. Node sounds like a fun choice - it solves the problem of running JS scripts basically for free!
[1] https://waspdev.com/articles/2025-04-07/will-there-be-a-new-...
Comment by GoblinSlayer 2 days ago
If violence doesn't solve your problems, you use not enough violence.
Also if you don't implement web standards, it's doesn't mean that nothing works. Adblock and noscript break web standards, but people use them just fine, they actually make web work better.
>A massive project like that will have massive code complexity, which leads to enormous number of security holes.
Presumably much of that is in network protocols like heartbleed, which has little to do with something like html parsing or google fonts. Also this is in fact a reason for a new browser engine: Chrome and Firefox lost security, because no matter how much they fix, they still have holes.
>If you don't use Rust, then security would be so bad it's not even funny.
Proofs?
Comment by Xirdus 2 days ago
Today, IE6's 95% would be less than 10%. So you'd need to implement several times more features than IE6 had to be even remotely close to the status of unworkable mess that webdevs are better off not supporting.
Low-level exploits like heartbleed are quite rare actually. The vast majority of security bugs in Chrome and Firefox are in unsafely handling edge cases in parsing HTML and other media types, not isolating script execution enough, and bugs in runtime interfaces (cookies, local storage, mic&cam APIs, location APIs, etc.) Realistically, there's no way to avoid these bugs - browser engine has too much inherent complexity, statistically you're bound to mke amistake every so often. Moreover, IIRC about half of those bugs are caused by buffer overflows and similar memory bugs. So by using Rust, you can expect to have half as many security holes than you'd have otherwise. The number is still in the thousands either way.
Comment by GoblinSlayer 1 day ago
Comment by Xirdus 4 hours ago
And you're saying somebody who is not Google can make a brand new browser engine from scratch in 2026, have it perform good enough to be actually usable in practice, and not be an absolute security nightmare?
Comment by akiselev 2 days ago
Mozilla Firefox merged Servo's Stylo CSS engine into Firefox 57 in 2017 and their WebRender renderer into Firefox 67 in 2019. I guess you could call that a "pretty niche browser" even then but that's a stretch.
No one's rushing to pick it up because Servo was originally an experimental Rust project meant to incrementally replace parts of Firefox. Then Mozilla stopped funding its development, and only recently have people picked it back up again as an independent browser implementation.
Comment by rpdillon 2 days ago
Well sure, but Firefox is still primarily powered by Gecko and SpiderMonkey. And they laid off the entire Servo team.
I wanted this to succeed as much as the next guy, but the momentum just isn't there. I was stunned to hear they are getting close to $8k a month in donations though, so it's certainly not dead (obviously, since this is a realease announcement).
Comment by nicoburns 2 days ago
Comment by hn_submit 2 days ago
Comment by IshKebab 2 days ago
Huh they gave up on that apparently.
Comment by kingwill101 2 days ago
Comment by nicoburns 2 days ago
That kinda undersells it I think. It's really core components being ported: the JavaScript engine is already ported, with the style and layout systems underway.
Comment by Xirdus 2 days ago
Comment by stackghost 2 days ago
Comment by steveklabnik 2 days ago
> We are not “rewriting the browser”. That's impossible. Put down the gun.
Comment by mohamedkoubaa 2 days ago
Comment by steveklabnik 2 days ago
Comment by vyaa 2 days ago
Comment by SnipeOfficial 2 days ago
Comment by bellowsgulch 2 days ago
You don't have to believe me, just look at their track record and ask yourself why no one embeds it in anything after, what, a decade or more?
Comment by GoblinSlayer 2 days ago