Most active commenters
  • IshKebab(4)
  • PaulDavisThe1st(4)

←back to thread

403 points jaytaph | 17 comments | | HN request time: 0.201s | source | bottom

Last year I wrote a post about trying to make a change in the world by writing a browser.

Today, we're excited to introduce Gosub, a new open-source browser engine that we are building from the ground up in Rust!

Gosub aims to be a modern, modular, and highly flexible browser engine. While still in the early development and experimentation phase, Gosub is shaping up nicely, and we’re looking to onboard more contributors to help us bring this project to life.

Some of the key highlights:

  * Written in Rust: We're leveraging Rust's safety and performance features to create a robust and efficient engine.
  * Modular Design: The project is organized around modules, allowing for clean separation of concerns and easier collaboration. It also allows us to easily swap components based on needs and allows more freedom for engine implementers in the future.
  * Collaborative and open source: We’re building Gosub with the intention of making it approachable and open to contributions, aiming to create a project that's easier to understand and collaborate on compared to existing browsers.
Instead of writing another shell around Chromium or WebKit, we decided to write a browser engine from scratch. We believe that having a diverse landscape of engines is the only way to defeat a monoculture that is currently threatening current browsers and by extension the internet itself. We cannot and should not let a very small number of large companies dictate the future of the web and its usage.

With Gosub, we're aiming to build something more approachable that can evolve with the latest web technologies, all while being open to contributors from day one.

We’re looking for developers with or without experience in Rust. You just need to be interested in browser technologies. There are plenty of opportunities to work on core modules, document our progress, and help shape the project's direction.

We can already render simple pages, including the hackernews front page. However, to render most sites correctly, it is still a long journey, so come and join us!

1. dustedcodes ◴[] No.41841205[source]
Why does it matter if it’s written in Rust?
replies(5): >>41841290 #>>41841350 #>>41841387 #>>41841734 #>>41843244 #
2. smt88 ◴[] No.41841290[source]
Rust was invented to make it easier to write a secure, performant browser engine
replies(1): >>41847693 #
3. spoiler ◴[] No.41841350[source]
A few thing from the top of my head:

- Might be interesting to integretors (FFI, dylib, Rust projects)

- Signals some characters: that it's probably safer than alternatives written in non memory safe languages in same class, has good performance

- Might attract contributors (ie I'm sure there's an intersection of people passionate abou the web and Rust)

- This is hacker news, so it might earn a few extra +1s :P

Edit: formatting

4. IshKebab ◴[] No.41841387[source]
Projects written in Rust tend to be very fast - as fast as C++ or C code - but without the endless security issues.

You may as well ask "why does it matter if this bridge is made of iron".

replies(1): >>41843523 #
5. pessimizer ◴[] No.41841734[source]
1) I suspect that it's important for potential contributors to know what language it's written in.

2) It mattered enough for you to complain about it for some reason, so look at that reason, then look at its reflection.

replies(1): >>41842444 #
6. dustedcodes ◴[] No.41842444[source]
Huh, Complain??
7. keyle ◴[] No.41843244[source]
Rust gives you the performance of C++ if not better sometimes, with code that won't go haywire at the 11th hour. There is value in that, particularly in an application that's sole purpose is to load arbitrary stuff from the internet.

Also if it was written in anything else, it probably wouldn't get the coverage it gets ;)

8. PaulDavisThe1st ◴[] No.41843523[source]
There are long lasting bridges made of stone, concrete and in the right climates, even wood. Not to mention rope when it suits the purpose.

Each material has its own qualities, which means its own pros and cons in a given context.

This naive belief that there will be one language to rule them all (and is name is <fill-in-the-blank> ignores history and the world outside of programming in a rather silly way.

replies(3): >>41845193 #>>41845569 #>>41847715 #
9. jancsika ◴[] No.41845193{3}[source]
> There are long lasting bridges made of stone, concrete and in the right climates, even wood. Not to mention rope when it suits the purpose.

I'd be fine with someone building a new browser out of stone, concrete, wood, or even rope.

Just don't build it out of C/C++ because those languages aren't memory safe.

replies(1): >>41850089 #
10. IshKebab ◴[] No.41845569{3}[source]
Nobody is saying that. But to continue your analogy, do you not think that in a world where all the bridges are made of wood it would be notable to say that a new bridge is made of steel?

Of course there are impressive projects made with C. But we generally don't build large bridges out of wood anymore do we.

replies(1): >>41850120 #
11. vacuity ◴[] No.41847693[source]
It's funny; I wish Rust was better suited for bare metal than it is now. But no matter how much people perceive Rust as a bare metal language like C, it was quite literally made for a level or two above that, in browser engines.

(Here's to hoping Rust for Linux continues to drive progress for bare metal Rust!)

12. vacuity ◴[] No.41847715{3}[source]
Try your best to ignore the rewrite-it-in-Rust people. They're just plain wrong for that. But yes, for a niche like browser engines, Rust is pretty darn well suited.
13. PaulDavisThe1st ◴[] No.41850089{4}[source]
Rust is a risk-reduction strategy. It is not a risk-elimination strategy.

There are risk-reduction strategies one can follow with C++, which offer some fraction of the reduction that Rust does (opinions vary on the value of the fraction). Rust enforces risk-reduction strategies, which in some contexts may be of value all by itself.

Language choice does not eliminate risks in software.

replies(1): >>41852744 #
14. PaulDavisThe1st ◴[] No.41850120{4}[source]
> do you not think that in a world where all the bridges are made of wood it would be notable to say that a new bridge is made of steel?

Notable, sure. But it could turn out to be Tacoma Narrows bridge.

We never did build large bridges out of wood, I think. For the right context, wood is still a preferred material for some bridges.

replies(1): >>41852782 #
15. IshKebab ◴[] No.41852744{5}[source]
> opinions vary on the value of the fraction

They don't really. It's been shown by many studies that 2/3 of security bugs are memory safety errors. That's the minimum that Rust can eliminate.

It actually should eliminate more because it also has the strong type system and tree-ownership style that help reduce the chance of logic bugs unrelated to memory safety too (similar to Haskell and other very strongly typed languages).

This is probably the biggest data set:

https://security.googleblog.com/2024/09/eliminating-memory-s...

Unfortunately they don't break out non-memory safety vulnerabilities, but they've almost eliminated memory safety vulnerabilities by writing new code in Rust.

16. IshKebab ◴[] No.41852782{5}[source]
> We never did build large bridges out of wood, I think.

Yes we did. They just haven't survived. For example London Bridge was "various wooden bridges, AD 50 – 1176".

replies(1): >>41854547 #
17. PaulDavisThe1st ◴[] No.41854547{6}[source]
I guess "large" has a bit of wiggle room built in.