Most active commenters
  • bee_rider(3)
  • josephg(3)

←back to thread

403 points jaytaph | 31 comments | | HN request time: 0.001s | 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. johnwbyrd ◴[] No.41840616[source]
Yes, but I'm concerned about the number of existing browser engines that have fallen by the wayside, as the project founders have become exhausted. The scope of such a project is incredibly easy to underestimate, and it has only ever gotten larger.

Some examples: https://www.reddit.com/r/browsers/comments/124kphe/what_do_y...

replies(4): >>41840663 #>>41840787 #>>41840862 #>>41840901 #
2. hypeatei ◴[] No.41840663[source]
The various web specifications are insanely complex (e.g. navigables) so I can see how people burn out from it. To add onto that, a browser operates in an extremely hostile space security wise; to be a serious competitor, you'll need to be on top of your game in that regard which maybe Rust will help with.
replies(1): >>41840815 #
3. 999900000999 ◴[] No.41840787[source]
Honestly, I view projects like this as more of an intellectual curiosity than anything which seeks to become useful .

The Firefox engine is great if you don't want something controlled by Google. And it's going to be much easier to develop plugins or extensions for that versus trying to write your own browser from scratch, which to be honest will probably cost hundreds of millions of dollars. If not more.

I do imagine tools like this being useful for something like web scraping, but it's never going to be an end user product.

replies(2): >>41841000 #>>41841029 #
4. bee_rider ◴[] No.41840815[source]
Something very silly has happened, where the thing that most non-technical people have which is most exposed to hackers is also incredibly complex and requires high performance for some reason.
replies(3): >>41840902 #>>41841384 #>>41841422 #
5. mjrpes ◴[] No.41840862[source]
All I have to do is stumble upon a heated 100+ post discussion on the implementation details of an arcane feature of CSS to understand how mammoth an undertaking it must be to develop a fully compatible browser engine.
replies(1): >>41841281 #
6. zamadatix ◴[] No.41840901[source]
Servo and Ladybird are more active than ever, each having fresh funding and ramping up focused development. Flow is a commercial project for embedded media devices (not just available on rpi, it actually came there later) and seems to be doing well? Sciter I don't know one way or the other about, it seems to have a few popular apps using it but I don't know if it died off since then or is just going strong. Netsurf has always been a bit by the wayside but it doesn't seem like founders getting exhausted has much to do with that.

There are plenty of browser engines that have fallen by the wayside, often for reasons unrelated to the founders, but that particular list actually paints a surprising amount of the opposite to me. For once since Chrome came out (it at least introduced v8 even if it started with webkit) I have the feeling there are browsers engines in development that can actually attempt to load the modern web and will actually have products for general use cases (instead of specialized ones) in the coming years.

replies(1): >>41841443 #
7. hypeatei ◴[] No.41840902{3}[source]
Yeah it's a real shame. The complex (and ever expanding) nature of the web is the real thing entrenching incumbents like Google. They have the existing codebase and resources to handle the complexity.
8. codetrotter ◴[] No.41841000[source]
> more of an intellectual curiosity than anything which seeks to become useful

I am reminded of this:

“I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones.”

– Linus Torvalds, announcing the software that became what we now know as Linux

replies(3): >>41841223 #>>41841238 #>>41841598 #
9. rustdeveloper ◴[] No.41841029[source]
For web scraping at scale you want to get lost in the crowd. This usually means being (or pretending to be) chromium on windows. Unusual browsers are suspicious, detected or have very distinct fingerprint.
replies(1): >>41841750 #
10. MYEUHD ◴[] No.41841223{3}[source]
He ended up only writing the kernel though.
11. qzw ◴[] No.41841238{3}[source]
One can only hope we can get a browser the same way we got Linux, but as RMS was fond of pointing out, Linux’s success had a lot to do with the existence of a full suite of GNU software that could run on top of a new kernel. If only we had something like GNU with browser engines, I’d be more optimistic about the chances for success of many new entrants.
replies(2): >>41841525 #>>41854217 #
12. diggan ◴[] No.41841281[source]
> develop a fully compatible browser engine

Do we need more "fully compatible" engines? I could imagine there are use cases for browser engines that work with just parts of the specification, particularly the most common ones used in the wild.

replies(2): >>41841473 #>>41841569 #
13. josephg ◴[] No.41841384{3}[source]
Yeah. I still hope at some stage we build something much simpler that maintains the same security boundary.

Like an application platform (forget documents) built entirely on wasm, and with capability based security. That would let you launch apps made within the platform just as easily as you currently open a website.

The platform would need some primitives for rendering, UI, accessibility and input handling. But hopefully a lot of those APIs could be much lower level than the web provides today. Move all the high level abstractions into library code that developers link into their wasm bundles. (For example, I’m thinking about most of what css does today.)

That would allow much faster innovation in layout engines and other things the web does today, and a smaller api surface area should lead to better security.

It’s quite possible to build something like this today. It’s just a lot of work.

Maybe when chatgpt is a bit smarter, it might be able to do the lion’s share of the work to make this happen.

replies(1): >>41841457 #
14. FpUser ◴[] No.41841422{3}[source]
Because the complexity and functionality of the modern (whatever the fuck this means) browser basically approaches one of the OS with all the consequences.
15. throwup238 ◴[] No.41841443[source]
I wouldn’t call Sciter a browser engine. The CSS syntax is similar and some properties behave the same, but it doesn’t implement web standards by design.
16. FpUser ◴[] No.41841457{4}[source]
>"Like an application platform (forget documents) built entirely on wasm, and with capability based security. That would let you launch apps made within the platform just as easily as you currently open a website."

In the end you will end up with the platform / OS which will lose to competitors because of performance and lack of features and do not expect it to be secure. Developers will manage to leave some holes and hackers will find their way.

replies(1): >>41843152 #
17. pests ◴[] No.41841473{3}[source]
Just as a data point, the YouTube app on most TVs and devices is a stripped down browser only supporting exactly the HTML/CSS/JS needed to run the big picture client.

By tighter integration with the final product, the browser can provide specialized elements or APIs to simplify the actual application code.

I think it's used a few other places as well.

replies(1): >>41842461 #
18. Yoric ◴[] No.41841525{4}[source]
A browser written in HTML on top of a rendering engine?

Mozilla had one a while ago: https://github.com/browserhtml/browserhtml . I'm sure it could be updated.

19. roywashere ◴[] No.41841569{3}[source]
Google tried a browser that only supported <div> and limited CSS for embedded purposes and it went nowhere
replies(1): >>41842102 #
20. ZeroGravitas ◴[] No.41841598{3}[source]
Or khtml which became the basis of WebKit and later Blink.
21. KPGv2 ◴[] No.41841750{3}[source]
Indeed. I heard about a browser called Zen a couple weeks ago and installed it. Just took it for a drive yesterday, and by the end of the day, Reddit had blocked me just based on my sporadic, normal use of the site for about two hours here and there while I did other things.

I switched back to Safari and it worked normal immediately.

22. airstrike ◴[] No.41842102{4}[source]
That just means that specific subset of features wasn't lucky enough to make it compelling at that particular point in time for the markets it meant to address.

Change any of those variables and you may have a winning proposition.

23. madeofpalk ◴[] No.41842461{4}[source]
Most smart tv apps are just web apps. YouTube isn’t particularly unique in that regard.

Even the old pre-tvOS Apple TV apps were kinda web apps - XML and JavaScript delivered over HTTP

replies(1): >>41842816 #
24. pests ◴[] No.41842816{5}[source]
I do agree TV apps are mostly web apps, but most of them did not run in a browser that was specifically designed for that single app.
25. josephg ◴[] No.41843152{5}[source]
Disagree. The web wouldn't be anywhere near as successful if you needed to trust & "install" websites before you could visit them. How does that work? Why don't you need to install / trust a website to use it? Well, because it has this kind of security model. Websites are sandboxed.

The web's sandboxed security model makes it better for users. And that in turn drives popularity.

I think the same could be true for a good application platform. The trick is using the sandboxing + capability based security model to enable "new" usability features that traditional applications can never deliver.

replies(1): >>41843220 #
26. bee_rider ◴[] No.41843220{6}[source]
Sandboxing has to be the funniest bit of wordplay anyone has ever made in tech. Sand is, of course, notoriously impossible to contain and never stays in the box. And it is not nearly as clever as an attacker!
replies(2): >>41843491 #>>41844484 #
27. PaulDavisThe1st ◴[] No.41843491{7}[source]
The term doesn't come from the idea of containing sand.

It comes from things built for children to play in that have an edge with contents inside it. You play "in a sandbox" without having to deal with anything outside of the sandbox.

The sand in a children's sandbox spills over and gets everywhere. The children playing inside it .. they don't have to care. They are playing inside the sandbox, and for now, the world outside it is not relevant.

replies(1): >>41844028 #
28. kibibu ◴[] No.41844028{8}[source]
> You play "in a sandbox" without having to deal with anything outside of the sandbox

I mean, besides "gifts" from the neighbourhood cats. How do they fit into the metaphor?

29. josephg ◴[] No.41844484{7}[source]
Hah true!

My girlfriend has strong opinions about how we use the word "library" to describe a software package.

Surely the metaphor should be that one package is a "book" and the entire package repository is the library, right? Left pad is an entire library? Huh?

And then we have no collective noun for collections of libraries!

replies(1): >>41844673 #
30. bee_rider ◴[] No.41844673{8}[source]
So then a function or subroutine or whatever could be a chapter? I’d be down for that I think.
31. kibibu ◴[] No.41854217{4}[source]
> Linux’s success had a lot to do with the existence of a full suite of GNU software that could run on top of a new kernel

I've heard this a number of times; but circa 1991 I'm not convinced. The critical GNU components to scaffold Linux adoption were:

- GCC + C runtime

- A shell (plus a bunch of small utilities)

You could make a reasonable argument that Linux was and remains a much bigger achievement, namely because GNU has never actually managed to make a usable kernel (Hurd still has no USB support, for example. I don't know if this is for technical or political reasons). On the flip side, there were plenty of compilers and shells kicking around that Linux could have bundled.

RMS makes all sorts of wild claims about how much of a distro is "GNU software" (a criterion that is never clearly defined - is any non-kernel GPL software part of GNU?) by comparing lines of code; but at the time of these claims distros tended to bundle anything and everything that you might possibly want.

Contemporaneously to all this, 386BSD had created a full freely-distributable Unix with no GNU code; and its descendants might have captured the mindshare were it not for an extended copyright battle from AT&T.