Hacker News new | past | comments | ask | show | jobs | submit login
Servo, the Parallel Browser Engine Project (servo.org)
59 points by brson on June 14, 2019 | hide | past | favorite | 15 comments



I've been following the development of Servo for several years. Unfortunately it's still is at a very early stage. Some of the most basic sites are rendered incorrectly, not rendered at all, or result in freezes and crashes.

Shows how bloated modern web is and how hard it is to write a browser engine. Really sad state of affairs.


I’d argue servo has been a success and doesn’t need to implement everything 100% to do so. It’s a research browser it’s goal is facilitate new techniques and many have been merged back into Firefox: production use of rust, the stylo css engine, webrender, etc. They’re still doing some really valuable work in vector graphics and vr. https://github.com/servo/servo/wiki/Roadmap


I tested it last year on my static blog and it mostly worked, it missed some CSS like underline colours but good enough. I then tried wikipedia and just got a blank page.


I like the pointlessly-recursive screenshot. https://en.wikipedia.org/wiki/Droste_effect


I was disappointed the screenshot inside didn't show the date of the previous screenshot update.


Is it easily embeddable yet? I’ve tried several times over the last years to use it instead of WebKitGTK, I’ve tried both servo-embedding-example [1] and servo-shell [2] and they were a pain to set up. I can compile servo and make it load a URL, but that’s it.

[1] https://github.com/paulrouget/servo-embedding-example [2] https://github.com/glennw/servo-shell

I also tried the examples in the WebRender crate, several times, and I never get any kind of text rendered, just rectangles. Due to lacking documentation I’m not sure whether I should be seeing text or not, but drawing rectangles is something I can do on my own with OpenGL or heck, even poking [64] the pixels myself!

[64] I first learned about computer graphics with my Commodore 64.

This is on Ubuntu with Intel integrated graphics (i7-4650U), which I guess might not be supported. Is that documented somewhere?

Anyhow, every time I try again I end up wasting several hours, so I’m still using WebKit for my application prototypes. Some of my use cases do not require a full browser engine (thus trying out WebRender), the most important part is text layout and I’m very interested in using Pathfinder [3], hopefully from a higher-level API like libservo or WebRender.

[3] https://github.com/servo/pathfinder


I still hope someday servo gets mature enough to be used as a backend for anything webkit is used for these days: electron, etc...


This project features one of the best open source logos: https://upload.wikimedia.org/wikipedia/en/d/d9/Servo_logo.pn...


Just downloaded the MacOS build (44Mb) from https://download.servo.org/ but can't even start it: "no mountable file system"! What is going on?


I think this explains it better: https://en.m.wikipedia.org/wiki/Servo_(software)


Forgive my webdev nievete, but what exactly is a Browser Engine, and how is it different from a browser? Is this like selenium? What's the use-case? Why is parallelism important in this context?


The browser engine gets HTML, parses it, and turns it into an array of pixels. Hopefully without crashing and without any security vulnerabilities. The rest of the browser is the UI built around this engine - it reads your URL bar, tells the engine to render the page, and handles things like navigation and bookmarks and saved passwords etc.

Browser engines also execute the JavaScript, though I'm pretty sure Servo just does the HTML/CSS rendering. Webpages these days are very heavy which is why parallelism is important (for both the layout engine as well as the JS engine).


Servo uses an existing JS interpreter (SpiderMonkey, the one used in Firefox) but does implement all of the Web APIs itself.


It's like the browser's kernel. You can build different browsers on top of the same engine without having to write everything from scratch. Chrome, Opera, Edge and Brave all share the same Blink/Webkit engine and there are a bunch of Firefox forks like Palemoon that share its Gecko engine.

Servo is a new engine written from scratch that's progressively replacing Gecko in Firefox: https://wiki.mozilla.org/Quantum


It's the (large) piece of a browser that is displaying the websites.

Parallelism is interesting to make them faster by using multiple processor cores, today probably most interesting for mobile devices.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: