Settings

Theme

One Year of Sponsored Servo Development

servo.org

226 points by AshleysBrain · 107 comments

Reader

10 threads
NLnet

NLnet has been sponsoring large blocks of Servo development as well. Filter with 'servo' in the list here: https://nlnet.nl/project/

  • stingraycharles

    As someone who had their first internet connection through NLnet in the 90s (later UUnet I think?), I’m so pleasantly surprised the impact that the organization has for open source projects globally.

    • junon

      I didn't know about this but of NLnet history. I assumed you had been mistaken so I looked it up. That's really cool!

throwa356262

Any idea how much this has cost them?

Some non-profits have their HQ in the valley and pay SF salaries when they could just as well have paid a fraction of that to a very competent developer elsewhere.

flossly

I really wish a patron would step up and sponsor this project. Not just by money, but also by plugging it in their browser-carrying products. Maybe Hauwei of Samgsung; they now sling a browser derived of another for-profit --usually competitor-- company's browser.

  • nicoburns

    Huawei are funding Servo. They have a small full time team on it and are the main reason the project got revived in 2022.

    • le-mark

      That’s interesting, anyone have more info on how why this came about? The why is pretty clear at least.

      • nicoburns

        It came about because US sanctions on Huawei mean that they are unable to make contributions to any of the major browser engines which are all controlled by US entities.

    • iamnothere

      I was not aware of this, and now I suddenly understand the weird hate that the project gets from drive-by commenters. (I don’t agree with it, but I can see a plausible motivation.)

  • fifilura

    I don't really see why they would do that?

  • embedding-shape

    So right now Servo is funded by the community, and this is no good because why? Instead you propose that this project should be funded by a for-profit company with it's own objectives in this world (that often starts with "more money"), again leading me to ask why?

    The setup right now seems to give enough people enough time to work on it to move forward, why on earth would you want to involve companies infamous for their shit software quality, like Samsung?

    • flossly

      > So right now Servo is funded by the community, and this is no good because why?

      Because look at Mozilla... You need to get the browser in front of people. A browser that works on the real web, is such a huge project, you cannot do it as a hobby community-funded project for ever. You need user-share-%.

      Samsung can put it in front of Samsung appliance users.

      • 112233

        Samsung has put Enlightenment 17 in front of every Tizen user. I am not seeing the flood of apps implemented on EFL coming out

    • lukan

      Probably because broad adoption would help making it a real option to use in the near future?

      So sure, Samsung would bundle it with their usual crap, but if it helps making the engine more mature, great, but I also don't see why they would in the first place.

      • doublerabbit

        It had broad adoption, Mozilla threw it away.

        The same would occur again.

        • JoshTriplett

          In fairness, while there was definitely Mozilla mismanagement, there was also a massive monopolistic marketing/bundling campaign by Chrome. Google search and other properties pushed Chrome, Google paid application publishers to bundle Chrome the way they bundled adware, and so on.

        • lukan

          Servo never had. But yes, mozilla management let FF go down the drain.

          • bryanlarsen

            Down the drain? Firefox is still a great browser.

            • t-3

              Firefox is acceptable, but it's definitely not what it used to be. I've long stopped expecting any positive user- visible change in Firefox updates.

            • lukan

              Their performance is not great comoared to the competition and their market share is at 3.7% and falling. The only thing that keeps me there, is ublock origin. The moment ladybird or a a servo base browser becomes an option I switch.

              And if FF also starts to restrict UO, I just go to chrome then. I assume many think like me.

        • bjord

          sorry, what? servo existing as a mozilla side project did not give it broad adoption

        • paulryanrogers

          Servo was not intended to replace Gecko. By all reports it was an experimental component, many of whose findings were used in Gecko.

          That folks want to take it further is admirable. But doubtful Mozilla could have afforded to with their existing commitments.

    • rvz

      > Instead you propose that this project should be funded by a for-profit company with it's own objectives in this world (that often starts with "more money"), again leading me to ask why?

      You understand that Mozilla Firefox is not funded by the "community" and is completely funded by Google's money. Even donating does not fund the browser.

      Mozilla knows that the open source "community" has no money, and cannot replace the amount of money Google is paying them and the employees who work on the browser.

      The question is are you ready to fill the $600M a year black hole for Google to NOT pay Mozilla to fund Firefox?

      It only makes sense for Servo to get funding from for-profit companies at this point, which is one of the only ways open source can work.

QwenGlazer9000

I'm glad we have an alternative to ladybird, since I haven't been a fan of the direction of the project for a bit.

  • edgyquant

    Would also be interested to hear why. Personally I used to watch serenityOS and only recently relooked into it to see the main guy was no longer leading it but working on ladybird full time

    • bryanlarsen

      They announced they are doing an AI assisted rewrite of parts of their code into Rust. That would alienate some.

      https://ladybird.org/posts/adopting-rust/

      Myself, my annoyance with Ladybird is that restarted everything from scratch. There are components of servo that are really good and basically complete. Why not use those components and concentrate on the components where you have design conflicts with Servo?

      • surajrmal

        I'm curious why you care about whether or not they spent time and effort to write those components themselves. Isn't that their choice as the authors? How does it materially affect you or the product experience? From my vantage point, I love the idea of having even more options as it will create competition, making all sides better for it. Having a singular dominant player in any space (whether it's a browser, kernel, or library) is something we should try to avoid whenever possible.

      • cogman10

        Didn't they start with like C++, then zig, and now rust.

        To me it's just not serious. They also had articles of "why we are doing zig and not rust".

        It's an ambitious project, but I can't take it seriously when the tech stack is in constant flux.

        • julenx

          Their origins are in C++, which is what SerenityOS has used. They've never done zig. They explored using Swift as a C++ successor language for the project[1], but seeing the platform support out of Apple was lacking, they gave up and made the bet on Rust[2].

          The motivation to use a memory safe language as the alpha approaches sounds more of a longer term bet [3].

          [1] https://ladybird.org/newsletter/2024-11-30/#swift-language-a...

          [2] https://ladybird.org/posts/adopting-rust/

          [3] https://ladybird.org/posts/changing-how-we-develop-ladybird/

        • askonomm

          They did start with C++. They experimented with Swift, then experimented with Rust, ultimately choosing Rust. I don't see how experimenting with things makes anything "not serious". If you don't question your primitives and just accept them "because that's how it has always been", you're not a very good engineer in my book. In any case, the tech stack is not in constant flux as you claim, it's still C++, with more and more parts moving / being started in Rust, with the eventual probability of Rust replacing C++ organically, I suppose. Seems like pretty sound strategy to me to slowly, but surely, adopt a memory-safe language.

        • kouosi

          I think they used swift instead of zig because Kling was using mac for development

  • ubercore

    What in particular? I've enjoyed watching some of the community update videos and dev videos, but haven't followed the project closely.

macic

The Hurd of browser engines

  • pveierland

    They are clearly progressing now as a project and the world definitely needs what they are building - it's literally something you can download and run right now.

    Rust was started in 2006 (20 years ago) and is now one of the most powerful programming languages, while the Servo project was started in 2012. If they reach parity and beyond of current browsers this could clearly become one of the most important browser engines in the future. Effort very well spent in my opinion.

  • cogman10

    At least originally, servo was just an experimental browser with the intention to carve up useful parts and send them back into Firefox. I believe firefox's current css parser came from servo.

  • flossly

    I remember waiting on the Mozilla project to deliver something that could browse as well on linux as closed source browsers on windows/mac did.

    It... took... long...

    But there it was. And it still works.

    • embedding-shape

      Was this recent? Because Firefox were the browser that worked better than all the rest, for quite many years, maybe 2005-2010, and Firefox had no competition basically until Chrome arrived on the scene.

      Just the fact that Firefox got browser tabs before anyone else, and Firebug, just took it to another level compared to all the other browsers available at the time.

      • vlovich123

        Your history is off. Opera was the first mainstream browser to implement tabs and boy was Opera also much faster than Firefox at its peak (both UI, resource usage, and rendering) which overlaps that “peak” Firefox period by a lot.

        Firefox was great because it was open source but it wasn’t ever really the “best” browser - it was the best open source browser.

        • le-mark

          > it was the best open source browser.

          Yes that was implied because IE was not mentioned either!

          • toyg

            When the original Phoenix browser was released, Explorer was in the middle of its slumber with the dreadful v6. Phoenix might not have been as feature-full as IE6, but it was very much the superior experience. It made browsers fun again.

      • saidinesh5

        > Hardware accelerated video decoding (for video playback or for WebRTC) is available via VA-API for both X11 and Wayland. Since firefox-101.0.1-4 package it's enabled by default for Intel/AMD users.

        From https://fedoraproject.org/wiki/Firefox_Hardware_acceleration

        I think that was around 2022-23.

        I remember this affecting my laptop video watching a lot. Google meet feeling sluggish on Firefox is also something I remember until very recently..

        • sspiff

          Google still tries to sabotage Firefox experience on Google Apps, especially Meet but also YouTube and sometimes Google Sheets/Docs as well.

          They want to degrade the experience just enough to get you fed up with FF and go (back) to Chrome, without making it absolutely obvious that's what they're doing.

          They often label these things as "regressions" because they don't test on Firefox and take forever to fix them. But I can't help but believe it's intentional.

          • duskdozer

            Yes, exactly. Google products working worse on Firefox is a problem with Google, not Firefox. I'm not sure why the conflict of interest isn't more obvious.

      • lukan

        Firefox was bad on linux for a long time. Even running the windows ff build via wine/proton got you better performance than the "native" build (I think that was around 10 years ago).

        • le-mark

          Much longer than 10 years! I’ve been on Linux since 2008 an it was never a problem.

  • mrmincent

    Feels like ladybird is going to Linux Servo

computersuck

Servo uses mozjs which is just rust bindings for SpiderMonkey which is still C++.

All this effort to use rust and yet they would not rewrite the JS engine which is the biggest attack surface for memory vulns.

vyaa

Congrats on the successful year!

evolve2k

Non ai post as top post. We did it guys! But seriously, it’s nice to see other news on here. Important we keep covering broader tech things.

p-e-w

What can one actually do with Servo today?

It’s apparently still not ready to be used as a browser engine (and may never be), so what exactly is it for?

  • LogicWolfe

    I use servo to render e-ink UIs and screenshot them to push to the displays. About 10% of the memory usage and 5% of the render time as doing the same thing with headless chrome. It doesn’t handle every possible feature, but it handles enough that it’s never been an issue when it’s my only target rendering environment. I love it.

  • nextaccountic

    https://v2.tauri.app/blog/tauri-verso-integration/

    https://github.com/versotile-org/tauri-runtime-verso

    Servo doesn't implement the whole web platform, but your own desktop app isn't the whole web. You can generally work around any limitations or missing features. And it might be lighter than CEF or whatever.

    • gyulai

      Couldn't agree more. Looking at [1], it seems to me like Servo has a much better adoption story than Ladybird. The latter seems to be just building a browser that's going to be crashy and not really work on the web. The former is addressing problem spaces where, even with the limitations of the half-finished state it's in, it can be usefully applied: WebView/Electron-replacement and headless browsers. Things not currently on this list that could/should be: HTML rendering for desktop E-Mail clients. Also, I wonder to what extent they're implementing paged media and capable of targetting PDF output or similar (like weasyprint). That could be another domain, where you don't need full web-scale abilities.

      And yet, somehow, Ladybird seems to be the darling of the masses (in certain circles at least). Doing vibe-ports to Rust, while going closed-contribution also, in my mind, sits in a marked contrast to the origin story that initially generated so much goodwill.

      [1] https://servo.org/made-with/

  • foresterre

    Regardless of actual use as an (embedded) browser, it is useful in the sense that it can be used to provide (another) source of validation about whether specs and WPT [1] tests are properly and clearly defined. That helps for long term browser compatibility.

    [1] https://wpt.fyi/results/?label=experimental&label=master&pro...

    • charcircuit

      >long term browser compatibility

      Making a new browser engine hurts browser compatibility more than it helps it. It now becomes one more target that needs to be tested against, limitations need to be kept tracked of, etc. The best thing for long term browser compatibility is focusing resources into Blink. In regards to the standard we can use LLMs to cross reference the spec, with tests, and with the implementation to make sure all match.

      • teekert

        Ah, you must be too young to have experienced early Internet Explorer, which attempted just this.

        • charcircuit

          Internet Explorer was not open source acting as engine everyone's browser could use and it got abandoned by Microsoft. It is not the same situation.

          • teekert

            One could argue that effectively Blink is also not open source. At any rate users don't have power over it, as witnessed by the manifest v3 stuff jammed down our throats.

          • le-mark

            Monocultures are bad full stop. Blink is corporate controlled open source, which has been clearly less than.

      • embedding-shape

        > The best thing for long term browser compatibility is focusing resources into Blink.

        Lol, for Blink perhaps, what about the rest of the ecosystem, the web and the users, like the ones who don't even use Blink?

        Very idealistic point-of-view with no basis in reality, sadly, because wouldn't it be nice if we could care about just one engine?

      • latexr

        > The best thing for long term browser compatibility is focusing resources into Blink.

        That’s what makes Google more dominant, and if you think that’s a good idea you should really put down your LLM and go read up on a bit of history. Do you want to live in a world where a single company controls your access to the web? Are you eager to navigate through ad pages with a little bit of web? To have even more of your data mined?

        Browser diversity may be a bit annoying for developers, but it is good for users, and developers are users too. When there’s a lack of diversity, everyone but the dominant player is squeezed.

        • charcircuit

          Google's dominance comes from market share not from owning upstream. If a different fork took 90% market share that fork would have the dominance and power.

          • samus

            And that market share is maintained by integration with Android and low-key sabotage of others browsers, especially Firefox. Similar to how Microsoft maintained its monopoly decades ago.

      • Oxodao

        yeah in a perfect world google dictates how the standard will evolve, we kill all competition so we're sure that you have only one target to build your software against, I'm sure a monopoly will greatly improves innovation and not be used to stiffen competition. /s

        • charcircuit

          Using Blink doesn't mean you have to defer all decisions to Google. You just benefit from not having to duplicate work.

          • kryptiskt

            And you can't do what Google doesn't want you to do. That's a nice ad blocker you have there, shame if we removed support for it.

          • samus

            Except one does since Google is the primary maintainer. Anyway, work on other browser engines is not duplicated or wasted.

  • phkahler

    >> What can one actually do with Servo today?

    You can run CAD in it: https://solvespace.com/webver.pl

  • iamnothere

    It’s not really a finished product yet (in terms of being production-ready), but it would already be usable as an embedded kiosk for applications where you own the pages being accessed.

  • nerdypepper

    servo is incredibly cool. super easy API to embed, and to build browsers around it.

fifilura

Hot take... There is something about programming projects spending 10x (or 1000x) the effort to parallelize execution when everything is still restricted by von Neumann architecture.

  • wannabe44

    This. I don't want your browser engine to use all my cores. I want the rest of my cores to be compiling C++.

    • fifilura

      It is not really about reserving cores.

      Just that - even if you distribute work to a number of cores (that itself limited), you still need to sync the execution. So unless you have some bigger chunks of computation, the performance increase will be very small.

      And yes, there are bigger chunks of work when rendering a web page, but that is typically already outside the css engine and can be distributed without having to rewrite the core engine.

      But my comments are a bit generic here, so I am open to comments regarding this particular project.

      • panstromek

        Servo also had some other novel architectural ideas IIRC, not directly related to paralelism, but it's been a while since I was looking into that, I don't remember much.

    • theandrewbailey

      I want all my software to use all my cores, because I'll have twice as many within 5 years.

      • majewsky

        Will you though? I like the adage: "We used to write software like hardware will get twice as fast every 2 years. Now we should write software like hardware will get twice as expensive every 2 years."

    • skavi

      that's something you, the user, are free to enforce with priorities, pinning, etc.

    • poly2it

      Thanks to the scheduler, you can do both!

    • speed_spread

      It's more efficient to use all the cores briefly and go back to whatever background task than have long running mixed load. This also matches performance expectations, you generally want the web page displayed _now_ and the compile to finish ASAP while accepting it will take _some_ time.

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection