
Servo, the Parallel Browser Engine Project - brson
https://servo.org/
======
sim_card_map
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.

~~~
bbatha
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](https://github.com/servo/servo/wiki/Roadmap)

------
p1mrx
I like the pointlessly-recursive screenshot.
[https://en.wikipedia.org/wiki/Droste_effect](https://en.wikipedia.org/wiki/Droste_effect)

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

------
AlbertoGP
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](https://github.com/paulrouget/servo-embedding-example) [2]
[https://github.com/glennw/servo-shell](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](https://github.com/servo/pathfinder)

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

------
dsl
This project features one of the best open source logos:
[https://upload.wikimedia.org/wikipedia/en/d/d9/Servo_logo.pn...](https://upload.wikimedia.org/wikipedia/en/d/d9/Servo_logo.png)

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

------
cdmckay
I think this explains it better:
[https://en.m.wikipedia.org/wiki/Servo_(software)](https://en.m.wikipedia.org/wiki/Servo_\(software\))

------
rotrux
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_pwner224
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).

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

