News: 1771868632

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Indie web browser Ladybird flutters toward Rust with a little help from AI

(2026/02/23)


The independent Ladybird web browser project is changing course on its choice of programming languages, with LLM-based coding assistants helping to evaluate the shift.

The latest blog post from the project spells out what's happening in its title: " [1]Ladybird adopts Rust, with help from AI ." The post also blames a delay in its development of around a year on its attempts to use Apple's Swift programming language, and one of its GitHub issues says that's history. For now, work continues in C++, with a side project porting subsystems to Rust running in parallel.

The [2]Ladybird project is writing a modern web browser, including its rendering engine, from scratch. That's a big undertaking; there are very few such projects around. Aside from some niche tools, all mainstream browsers boil down to three basic families. Mozilla's Firefox, based on Mozilla's own Gecko rendering engine is one. The other two are related to each another. On Apple OSes, Safari is based on Apple's WebKit engine, which [3]originated as a fork of KDE's KHTML in 2003. On other platforms, there's Google Chrome, which uses the Blink engine that [4]Google forked from WebKit a decade later.

[5]

Ladybird started out as the built-in native web browser of the Serenity OS project, which [6]we tried out and wrote about in early 2022. About 18 months later, the Serenity OS project turned five, and lead developer Andreas Kling decided to spin out the browser as a [7]separate, standalone cross-platform program .

[8]

[9]

Serenity OS is a new Unix-like OS. Unlike Linux or the BSDs, it is implemented in C++, meaning Ladybird is as well. Back in 2024, Kling [10]announced on X that the browser project was changing course to use the relatively new Swift programming language instead. [11]Apple announced Swift in 2014 and the next year pledged that [12]Swift 2 was to be open source – and thus cross-platform.

Ladybird's dalliance seems to be very much over, though. Kling closed its issue [13]#933 Swift 6.0 Blockers last week, with the [14]comment :

Closing this as we are no longer pursuing Swift adoption.

Now he's talking about the reasons why. In the Rust announcement, he says:

The C++ interop never quite got there, and platform support outside the Apple ecosystem was limited.

Instead, "Going forward, we are rewriting parts of Ladybird in Rust." The post continues:

When we originally evaluated Rust back in 2024, we rejected it because it's not great at C++ style OOP.

[…]

But after another year of treading water, it's time to make the pragmatic choice.

How the choice was made may raise some eyebrows, though. He chose to use LLM-powered coding assistants to translate the C++ code into Rust, and then closely check that the structure of the resulting code matched the original and that it produced identical output. He chose to start with Ladybird's JavaScript interpreter because it's fairly self-contained, its stages and output are clearly defined, and it has good test coverage thanks to the [15]ECMAScript Test Suite .

This was not an exercise in "vibe coding," as he carefully explains:

I used Claude Code and Codex for the translation. This was human-directed, not autonomous code generation. I decided what to port, in what order, and what the Rust code should look like. It was hundreds of small prompts, steering the agents where things needed to go. After the initial translation, I ran multiple passes of adversarial review, asking different models to analyze the code for mistakes and bad patterns.

The results certainly sound impressive:

The requirement from the start was byte-for-byte identical output from both pipelines. The result was about 25,000 lines of Rust, and the entire port took about two weeks. The same work would have taken me multiple months to do by hand. We've verified that every [16]AST produced by the Rust parser is identical to the C++ one, and all bytecode generated by the Rust compiler is identical to the C++ compiler's output. Zero regressions across the board.

[17]Google forks WebKit, promises faster, leaner Chrome engine

[18]Price of popularity: Linux Mint's success also means maintainer stress

[19]Contain your Windows apps inside Linux Windows

[20]The big FOSS vendors don't eat their own dogfood – they pay for proprietary groupware

The approach of using LLMs to translate software from one language to another, in pursuit of better safety – as well as performance, code size, and other desirable properties – is one we [21]idly speculated about ourselves back in 2024. It's almost the opposite of the hands-off let-the-bot-do-it approach of the vibe coding horde.

Kling notes that the result isn't idiomatic Rust and it will need polishing. This is not the project's sole new direction:

This is not becoming the main focus of the project. We will continue developing the engine in C++, and porting subsystems to Rust will be a sidetrack that runs for a long time.

It's an interesting exercise, and one we suspect will irritate as many people as it pleases. Kling is no stranger to controversy. For example, he's been [22]accused of transphobia because he [23]refused changes to make the language of the Serenity OS documentation more gender-neutral, among [24]other things . It's also received sponsorship from Cloudflare – at other times [25]no friend to minority browsers . For some, these things are enough to [26]condemn the project , along with the Omarchy Arch-based Linux variant, the controversy around which The Register has [27]discussed previously .

Bootnote

As an amusing footnote, in our piece on LLM code translation, we linked to a post by programming blogger Steve Yegge. He has recently gone all-in on farms of bots supervising bots in what [28]he has dubbed "Gas Town," complete with a newfound enthusiasm for [29]paying for the tokens with cryptocurrencies . As ever with Yegge's blog posts, they are both long and quite deep, but this time, we would like to stress that we are not recommending you read them. We're not at all sure they are worth your time. Rusty Foster's critical assessment, " [30]All Gas Town, No Brakes Town ," might be, however. ®

Get our [31]Tech Resources



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

[2] https://ladybird.org/

[3] https://www.theregister.com/2003/01/07/apple_reopens_browser_wars/

[4] https://www.theregister.com/2013/04/04/google_forks_webkit_as_blink/

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2aZzcEz6bEVXH9gHcNHkWogAAAo0&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[6] https://www.theregister.com/2022/03/31/serenityos/

[7] https://www.theregister.com/2023/10/17/serenity_os_turns_five/

[8] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44aZzcEz6bEVXH9gHcNHkWogAAAo0&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[9] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/applications&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33aZzcEz6bEVXH9gHcNHkWogAAAo0&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[10] https://x.com/awesomekling/status/1822236888188498031

[11] https://www.theregister.com/2014/06/02/apple_aims_to_speed_up_secure_coding_with_swift_programming_language/

[12] https://www.theregister.com/2015/06/08/apple_open_source_swift/

[13] https://github.com/LadybirdBrowser/ladybird/issues/933#issuecomment-3914415625

[14] https://github.com/LadybirdBrowser/ladybird/issues/933#issuecomment-3914415625

[15] https://github.com/tc39/test262

[16] https://dev.to/balapriya/abstract-syntax-tree-ast-explained-in-plain-english-1h38

[17] https://www.theregister.com/2013/04/04/google_forks_webkit_as_blink/

[18] https://www.theregister.com/2026/02/16/mints_success_and_stress/

[19] https://www.theregister.com/2026/02/14/winapps_and_winboat/

[20] https://www.theregister.com/2026/02/12/suse_runs_ms/

[21] https://www.theregister.com/2024/09/18/the_future_of_software_part_2/

[22] https://toot.cat/@EveHasWords/114081930465217200

[23] https://github.com/SerenityOS/serenity/pull/6814

[24] https://hyperborea.org/reviews/software/ladybird-inclusivity/

[25] https://www.theregister.com/2025/03/04/cloudflare_blocking_niche_browsers/

[26] https://drewdevault.com/2025/09/24/2025-09-24-Cloudflare-and-fascists.html

[27] https://www.theregister.com/2025/10/14/framework_linux_controversy/

[28] https://steve-yegge.medium.com/welcome-to-gas-town-4f25ee16dd04

[29] https://steve-yegge.medium.com/bags-and-the-creator-economy-249b924a621a

[30] https://www.todayintabs.com/p/all-gas-town-no-brakes-town

[31] https://whitepapers.theregister.com/



More Fragmentation

Anonymous Coward

Will more fragmentation really help those of us who refuse to use Chrome, Safari, or Edge?

For decades now, the alternative to Windows was Linux, and if an "innovator" wasn't satisfied with the 42 flavors of Linux available, the answer was to create a 43rd.

How well did that work out for the community?

Big Tech browser dominance is not healthy for the web. Chrome's near-monoculture is worse than the Internet Exploder monoculture of years past, the key difference being that Google's core business model is committing advertising against its users. At least in the old IE days, Microsoft hadn't yet started doing the same.

JLV

Unexpected: I’d listened to a podcast a year back where he specifically explained why they avoided Rust. At length. And why Swift.

Was odd to see a garbage-collected language being used for a browser.

Is there a post-mortem somewhere detailing why Swift was booted? Failures - esp. others’ - make for good lessons.

QET

It's mentioned in the article that Swift suffers from being Apple developed, and thus is developed to target Apple's needs.

Anything else is presumably just a happy coincidence, which the devs have now realized after trying to use it for non-Apple needs.

JLV

Article doesn’t really say that. Instead it talks about bad C++ interop. Funny thing is, a year ago he was dissing Rust for just that lack of interop (along with lack of OOP not being a good fit for widget-oriented GUIs).

And what they had done to gauge suitability was prototyping some new features in various languages.

I am looking forward for Ladybird warts, controversies and all.

williamyf

Ladybird brings Rendering engine diversity.

A new security paradigm (which does not receive enough coverage).

And LICENSE diversity, as it is BSD licensed, instead of WebKit and Chrom(e/ium) GPL.

All these things mean more choice, as well as more interesting choices

PS: If you look at my past post history, you will see that I prefer what I call "Drama-Free" FOSS licenses, like BSD, Apache, MIT, ISC or WTFPL.

¿One of your programmers forgot to push the source code to the repo?

No twitter shaming, no Social media Crucifiction, no Linkedin Bashing, no lawyers involved, no software freedom conservacy involvemnt, no Torvalds Blasting the Software freedom conservancy on your behalf ( https://techrights.org/n/2025/12/27/Linus_Torvalds_Blasts_Software_Freedom_Conservancy_SFC_for_Atte.shtml ) , no drama... Just publish the code... or not.

Re: I am looking forward for Ladybird warts, controversies and all.

VoiceOfTruth

>> Ladybird brings Rendering engine diversity.

How many people will use it? Realistically? If Firefox gets a little over 2%, how much market share will Ladybird get?

More choice may not work out very well. Wait and see if Ladybird works on your banking web site. Because there is zero chance any bank is going to make exceptions for Ladybird users.

Re: I am looking forward for Ladybird warts, controversies and all.

Anonymous Coward

Precisely. The open community needs to stand behind Firefox. Fragmentation divides us to the benefit of Big Tech.

If we don't stand together, then what happens when banks and the like start requiring Chrome, Safari, or Edge? What happens if useragent spoofing doesn't work anymore?

Re: I am looking forward for Ladybird warts, controversies and all.

Chris Gray 1

My banking web stuff works just fine in Firefox, and I have NoScript active - I allow the bank's website of course, but *NO* website gets to use "googletagletmanager.com". Showing transactions, transferring between accounts, payments to email accounts, etc.

Sorry! :-) :-)

Chris Gray 1

From the article:

"When we originally evaluated Rust back in 2024, we rejected it because it's not great at C++ style OOP."

Apologies for being so late with Zed. It has capsules (single inheritance classes) and interfaces like Java's, but is fully safe if you don't turn on privileged mode. Object code is similar-ish to gcc non-optimized output. I decided to add forward declarations of initialized multi-value constants and global variables a while back, and getting from my internal hash tables, lists of elements, etc. to Elf .o files has been hard on my weak brain. :-(

Re: Sorry! :-) :-)

JLV

zig? the language. rather than zed, the editor?

zig is used by Hashimoto’s Ghostty terminal emulator, my goto these days. He evaluated Rust vs zig before settling on zig.

Plonk

druck

Watch for it fizzing out after a few months. Its one thing to do a one off port, whatever method you use. It's quite anther thing to maintain and extend a streaming heap of AI generated slop code.

Inheritance taxes are getting so out of line, that the deceased family
often doesn't have a legacy to stand on.