Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
An open-source browser engine written in Rust (github.com/servo)
120 points by keepamovin on Jan 24, 2024 | hide | past | favorite | 33 comments


Previously:

* Servo to Advance in 2023 (300 points), Jan 2023: https://news.ycombinator.com/item?id=34400214

* Servo, the parallel browser engine written in Rust (340 points), May 2023: https://news.ycombinator.com/item?id=36092852

* This year in Servo (265 points), Dec 2023: https://news.ycombinator.com/item?id=38681463

* What's the future of Servo? (578 points), Aug 2020: https://news.ycombinator.com/item?id=24156504

* Servo's new home (1025 points), Nov 2020: https://news.ycombinator.com/item?id=25125325


See also:

* What's the future of Servo? (578 points) Aug 14, 2020 https://news.ycombinator.com/item?id=24156504

* Servo Engine contributions this year (238 points) July 1, 2021 https://news.ycombinator.com/item?id=27700836

* Can Servo be a clean and modern reference platform for developers? (62 points) Aug 27, 2015 https://news.ycombinator.com/item?id=10129518


Always shade thrown at "in Rust" and I don't like how it's become buzz-wordy, but here it seems appropriate- not because "oh I might use this browser because it's written in rust" more like a great resource to understand how so many various features and functionality are implemented and fit together in a particular language that might be of interest.

If this were written in D or Zig or something other than C++, I think that's unique and worth mentioning.

What a cool project to be open source. Browsers do a lot of crazy stuff.


Fun fact: Rust's development saw significant traction and support by Mozilla in the first place to be used for the development of Servo. Or in other words, the eventual development of Servo was, what motivated the development of of Rust from pet project into what it is today.


It is a signal of quality. There are entire classes of bug which are much less likely to occur in apps written in rust.

As with all signals, it is neither a guarantee nor entirely meaningless.


Can someone elaborate the relationship between Servo and Firefox? When it firstly came I thought it's going to be the next engine used in Firefox (replacing Gecko), but it apparently was not the case.

I then heard that servo would be part of Firefox, replacing certain components (layout rendering?), but this repo seems to imply that Servo is a standalone engine.

Edit: found a reddit post [1], which cleared up what Firefox wanted/got from Servo project.

But it's now even more confusing that what the purpose of current Servo project has. If building a full browser engine from scratch is deemed to hard even with Mozilla's financial support (according to this post), now without, it's hard to imagine anything substantive would be done with this project in future.

[1] https://www.reddit.com/r/firefox/comments/yvd1f0/whats_the_s...


My understanding is that it was going to be the new core of Firefox, until the mass Mozilla layoff of 2020 where the Servo team was completely gutted.


This is incorrect. Servo was a test bed for new architectural changes within Firefox. Some of them made their way into Firefox, like Stylo and WebRender.


I don't think that was the plan from the start. There definitely was talk that it would eventually replace Gecko, not just be used for parts.


Other comments give more detail, but some of the good ideas made it into Firefox. A similar thing happened at Google when Omega seemed like it might replace Borg. Borg adopted the best ideas and Omega got cancelled.

Sometimes it's easier to retrofit the novel ideas from a research system into the production system than it is to make the research system into the production system, and that's OK.


Which is totally fine I think, but I guess there really isn't much future for the current Servo project, right?


Servo had a period where it had no active backing, but now it's part of the Linux Foundation and seems to have more buzz around it. I know Tauri (UI toolkit for Rust and other languages) are looking at ways to use Servo as the backend for developing UIs in Rust, kind of like a more lightweight electron.


It seems they're even making some progress on that https://servo.org/blog/2024/01/19/embedding-update/


> even with Mozilla's financial support

I wonder how much was spent on browser engine versus determining what sneaker designers has to say about colors on the modern web, and other such things

https://www.mozilla.org/en-US/stories/joy-of-color/


> If building a full browser engine from scratch is deemed to hard even with Mozilla's financial support

Maybe that is long term goal, but it seems to me that they are currently working on embedding - so it can be used in applications, that do not need full-featured engine.


The purpose of servo (and therefore the purpose of Rust) is to drive the development of Rust's LSP, obviously


Now passes 80% WPT as of Jan 10 2024: https://wpt.servo.org/


I think it only applies to the focus area, otherwise it's at 55.7% (which is already quite impressive!).


For details on how parts of Servo were moved to FF, see Quantum: https://en.m.wikipedia.org/wiki/Gecko_(software)#Quantum

> It includes numerous improvements to Gecko, largely incorporated from the experimental Servo project.


is it correct to say, that rust was created to create servo


I wouldn't say so.

It seems this was a personal itch that Mozilla's developer Graydon Hoare wanted to scratch and then Mozilla saw potentional and started sponsoring it for Servo.

https://www.technologyreview.com/2023/02/14/1067869/rust-wor...


So Graydon Hoare made the initial design and implementation, but it was significantly redesigned and reimplemented after it was picked up by the wider Mozilla organisation for use in browser development.

So Rust as we know it today was definitely made for browser development at Mozilla. But that means both Firefox and Servo, not just Servo.


Afaik it existed on the prototype stage before Mozilla investigated using it because it fit their purpose. But I think it's fair to say we know about Rust today because of Servo.


Interesting that the last git tag was pushed in 2019, and most of the Cargo.toml files show version "0.0.1."


As another commenter points out, Mozilla laid off almost the entire Servo team a few years ago



don't know, there was a downtime in 2021 and 22 but since 2023, contributions look back to where it was before .. https://github.com/servo/servo/graphs/contributors


It's a little rusty


I take umbrage with the qualificative of "An"... the title should say "THE". :)


[flagged]


Oh no! Anyway


[flagged]


You can examine the contents of the shell script yourself -- but how is this any different from running the rest of the application without examining the source?

Do you just draw some arbitrary line to say, "running easily readable shell scripts is bad, but compiling and running code I have never looked at or completely understand is okay."?

Really the only logical answer here is to adopt a zero trust security model and just assume every line of code is compromised. Run it in a VM, in a container, firewall it, jail it, sandbox it, etc.

Otherwise you're whispering sweet nothings to yourself if you believe piping unknown scripts to shell is the most vulnerable thing you can do here.


It's because I have an expectation that running the actual code won't change system-wide state and running the pipe-into-shell command will.


imo should say "install rust" as a step and show the command. We probably shouldn't condition folks to blindly paste/execute, especially shell scripts from the web- but it sure is easy




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: