Skip to content

Latest commit

 

History

History
129 lines (87 loc) · 9.47 KB

FAQ.md

File metadata and controls

129 lines (87 loc) · 9.47 KB

Frequently Asked Questions about Ladybird

What does 'Independent' mean, if you're including third party dependencies?

Independent means:

  • We implement the web platform standards ourselves: Ladybird is not a Blink/Chromium shell, not a WebKit port, not a Firefox fork.
  • We don't take money from anyone with strings attached

Is [some particular site] usable in Ladybird?

Ladybird is pre-alpha software you have to build from the sources yourself in order to even try. That said, it’s getting better day-by-day at handling some of the most widely-used sites on the web. So, you may find that a given site among the sites you visit daily is already usable in Ladybird. Or you may not. The only way you can really know at this point is to follow the build instructions to build Ladybird and try it yourself.

Windows support when?

There are very few Windows developers contributing to the project. As such, maintaining a native Windows port would be a lot of effort that distracts from building out the web platform standards in a reasonable amount of time.

After we have a solid foundation, we may consider a Windows port, but it's not a priority. In the meantime, Windows developers can use other tools such as WSL2 to work on Ladybird.

Will Ladybird support $THING?

Eventually, probably, if there's a Web Spec for it!

When will you implement $THING?

Maybe someday. Maybe never. If you want to see something happen, you can do it yourself!

Is there a release roadmap?

  • 2026: alpha release (daily driver for developers and early adopters) for Linux and macOS.
  • 2027: beta release; downloadable app for Linux and macOS.
  • 2028: stable release for general use image

Well, how do I run this thing then?

Simple, my friend! Just refer to the build instructions.

I did a git pull and now the build is broken! What do I do?

If it builds on CI, it should build for you too. You may need to rebuild the toolchain. If that doesn't help, try it with a clean repo.

If you can't figure out what to do, ask in the #build-problems channel on Discord.

Where did Ladybird come from?

For full details, see the Ladybird: A new cross-platform browser project announcement from 12 September 2022.

Here’s a short timeline:

What makes Ladybird/Ladybird Browser Initiative different?

  • Fully independent: Written from scratch, using no code from any other browser engine.
  • Singular focus: Doing only one single thing: building a new browser engine and browser.
  • No monetization: Will never take funding from default search deals or any other forms of user monetization, ever.

Are there video/audio announcements and interviews about the start of the Ladybird Browser Initiative?

Can you describe some of the project goals and its culture?

  • Eventually give everybody the choice of a whole new browser they can use for their daily browsing.
  • Prove it is in fact possible to build a completely new browser, by implementing from the WHATWG/W3C/etc. specs.
  • Have a lot of real fun together actually doing it.
  • Prove that developing an engine doesn’t take hundreds of engineers — and not anything close to even just a hundred.
  • Browser engineering: Further help de-mystify it and make it a standard thing to learn (hat tip: https://browser.engineering/).
  • Using project Discord server for communication discord.gg/nvfjVJ4Svh.
  • Using one GithHub repo for everything: issues (no bugzilla or other), patch/PR submission/review, CI/test automation.

What are some of the project coding conventions? And do you have any activity metrics?

Do you have some general details about the code and basic architecture?

  • C++ while selectively migrating parts to Swift and while keeping an eye on things like Sean Baxter’s Circle & Safe C++.
  • Some use of third-party libraries (e.g., Harfbuzz, Skia, simdutf, libcurl).
  • Performance optimizing is not yet a super-high priority (but performance-boosting changes are regularly getting made).
  • Code size:
    • Roughly same size (number of lines of code) as Servo.
    • About 1/15th as many lines of C++ code as WebKit.
    • About 1/20th as many lines as C++ code Gecko.
    • About 1/50th as many lines as C++ code Chromium.
  • Level of standards support: wpt.fyi/results?product=ladybird has current test results for all WPT tests.
  • LadybirdBrowser/ladybird#features:
    • UI process, ImageDecoder process, RequestServer process, WebContent processes.
    • LibWeb: core web-rendering engine (HTML, CSS, Events, DOM, APIs).
    • LibJS: JavaScript engine written from scratch (currently JIT-less).
    • LibWasm: WebAssembly implementation written from scratch.
    • AK: Ladybird standard library/abstractions: asserts, smart pointers, strings, numbers (e.g., fast_float impl.), more…

What about funding?

Do you have some places where I can watch videos related to the project?

  • Ladybird YouTube channel: monthly Ladybird project updates from Andreas.
  • Andreas’ YouTube channel: 1000+ videos from 6+ years; incl. “car talk” + OS/browser “hacking” (live-coding) videos.

Is there some related background to help me understand what a browser engine is and why it’s important?