return to table of content

Verso – web browser built on top of the Servo web engine

ksec
28 replies
5h28m

So we will, in ~5 years time have two new browser, one in Rust and one in Swift.

I hope in the process of doing it we will find new ways of doing things.

jitl
15 replies
5h12m

What swift browser are you referring to?

BadHumans
9 replies
5h10m

Ladybird has started using Swift.

monacobolid
7 replies
4h37m

For UI portion of their Mac OS version? What am I missing?

Wowfunhappy
5 replies
4h21m

For everything. Swift is—at least in theory—a general purpose language, it's not exclusively for Apple technologies.

First off, Swift has both memory & data race safety (as of v6). It's also a modern language with solid ergonomics.

Something that matters to us a lot is OO. Web specs & browser internals tend to be highly object-oriented, and life is easier when you can model specs closely in your code. Swift has first-class OO support, in many ways even nicer than C++.

The Swift team is also investing heavily in C++ interop, which means there's a real path to incremental adoption, not just gigantic rewrites.

https://x.com/awesomekling/status/1822236888188498031

https://news.ycombinator.com/item?id=41208836

sheeshkebab
2 replies
2h0m

Swift is useless outside of macOS/iOS dev… the thing doesn’t even have namespacing. I don’t know for what reason someone would use it outside for Apple environment.

refulgentis
0 replies
49m

You're right but this touches the hot stove.

HN majority doesn't like hearing that ladybird et al might just be wandering around, even if the goal is catnip for the bleachers, and we should be skeptical this is the year of multiplatform Swift, because it wasn't last year if you actually tried it. Or the year before last. Or the year before that. Or the year before that year. Or the year before that one.

factotvm
0 replies
1h47m

You can disambiguate two types with the same name from different libraries, e.g. `Factotvm.URL` and `Foundation.URL`. Do you mean something more full-featured? You are not prefixing types with three letters, if that's what you think has to be done.

I don't know if it's still the case, but there was an annoyance where you couldn't have a type with the same name as the package. But that is hardly a lack of namespaces.

sesm
1 replies
1h30m

First off, Swift has both memory & data race safety (as of v6)

But v6 is not released yet, right?

wahnfrieden
0 replies
1h5m

next month

bobajeff
0 replies
3h32m

Actually, it sounds like they only just decided to use it in the future once Swift 6 is released. I would guess much of it will still be in C++ for a while.

conkeisterdoor
3 replies
5h10m

Most likely Arc (https://arc.net/)

hypeatei
1 replies
4h46m

Arc is based on Chromium for anyone wondering. I believe part of the UI is written in Swift but the engine isn't.

steve_adams_86
0 replies
3h22m

I like Arc and use it (I actually never stopped using it after the first time I opened it), but I wish they weren't building off of Chrome.

actinium226
0 replies
4h50m

Arc is a fork of Chrome if I'm not mistaken

clot27
0 replies
5h7m

Ladybird

amelius
5 replies
4h3m

The problem with these smaller webbrowsers is that you have nobody to sue if the browser turns out to leak your personal information or credentials etc. Therefore it is better to stick with browsers made by big corporations.

alex_duf
1 replies
2h41m

This is true for any software though, so if we push that reasoning to its extreme, no one should ever use any free and open source software, which I find a little bonkers.

amelius
0 replies
1h52m

Except browsers are more likely to leak your personal info than, say, a vector drawing program.

swiftcoder
0 replies
44m

I'm curious what exactly you think suing Google or Apple in such a case would accomplish?

On the (long) odds that you get all the way to a successful class-action suit, the lawyers get rich, and the class members eventually end up with a free year of credit monitoring

(we have seen this over and over again in settlements for high-profile data breaches)

ddtaylor
0 replies
32m

I'm fairly certain those big corporations are stealing that same information just paying fines and PR people to manage the backlash.

RussianCow
0 replies
43m

Are you really planning on suing Google for leaking personal info via Chrome?

ChocolateGod
3 replies
4h48m

I'd like to see Swift adopted more on non-Apple operating systems, some of the recent GTK apps written in Swift are pretty cool.

synergy20
0 replies
13m

sadly Gtk's support for MacOS is best efforts only

nbbaier
0 replies
3h37m

What apps are you thinking of? Curious to check them out.

jamil7
0 replies
38m

There's been a lot of work on this in the last few years with Windows support, preliminary Android support is also being worked on and should appear at some point in Swift 6.

wslh
1 replies
2h51m

Is there a good software engineering resource about the complexity of a web engine? I mean, we all know that is complex but what are the critical areas. Performance is one, compatibility another.

wongarsu
23 replies
5h48m

According to https://servo.org/about/ Servo currently passes ~60% of the web platform tests. Does anyone have experience how far that subset gets you on the open internet?

timschmidt
16 replies
5h23m

Hackernews and LWN render reasonably correctly in recent nightlies. Reddit does not.

jsheard
14 replies
5h20m

New Reddit or Old Reddit?

timschmidt
12 replies
5h18m

New Reddit. Old reddit seems to work OK.

spankalee
11 replies
4h27m

The newest Reddit - not the React version, but the Lit version that's replacing it - uses very, very modern HTML and JavaScript. I'd love to see Servo get to the point of rendering it correctly!

satvikpendem
7 replies
4h25m

How many times are they going to rewrite the site? And how can you see the Lit versus React version, is there another link for it?

StrauXX
5 replies
4h11m

There is old.reddit.com, reddit.com and new.reddit.com. new.reddit.com is not the same site as reddit.com!

culi
1 replies
2h52m

TIL. new.reddit seems to be a return to old.reddit in a lot of ways. It also seems really really fast unlike the current www.reddit. If they remove some annoying ads I might even be convinced to stop using old.

bee_rider
0 replies
38m

The only downside is that new is still being developed. Old is nice because it is shielded from their post-success incompetence. Whatever bad ideas they decide to implement will hit new first.

CryZe
1 replies
3h41m

new.reddit.com seems to be an older layout than just reddit.com for me, one where most stuff still works (like video embeds).

timeon
0 replies
2h43m

At least it is faster and seems to be less bug-y.

jccalhoun
0 replies
2h39m

It is so crazy. I normally use "reddit.com" but a few weeks ago i followed a link to an article on "old.reddit.com" and saw I had notifications. I clicked the item and it was all notifications from days ago. So the read status of notifications on old reddit and current reddit aren't linked?

spankalee
0 replies
3h36m

Most pages, logged-in and logged-out, seem to be using the Lit version for me. I don't think it contained many visual changes, so you have to look for the presence of web components.

hypeatei
2 replies
4h22m

Pretty amazing how a company can overengineer a basic feed that displays images and text (and ads). New Reddit is a dumpster fire, can't imagine another rewrite is going to fix it.

throwaway894345
0 replies
4h6m

Yeah, one of the weirder things is that if someone blocks you, you are not allowed to reply to any comment in the thread (for example, if someone posts a toplevel comment and doesn’t reply to anything, and you reply to some comment a dozen layers below and have an exchange with some third party, if the toplevel commenter blocks you, you can’t reply to anything including comments left by others in response to your own comment) and you get a generic “internal server error”-type pop up with no information about why the request failed.

This is most likely a server “feature” and thus a rewrite of the frontend won’t fix it but it seems like at very least the frontend could display a sane error message (assuming the backend forwards some information about the cause of the error).

42lux
0 replies
4h11m

Yeah, I’ve never thought anyone could build a video player worse than realplayer but they achieved the impossible.

d1sxeyes
0 replies
2h9m

New Reddit rendering “properly” is as useful as a chocolate fire guard. Do you want to view this content on the app? You Can Only View This Content In The App, THE APP is the WAY, JUST FUCKING DOWNLOAD THE APP!!!

At least on mobile.

cge
0 replies
1h40m

Itappearsthatspacesdon'tworkformewhentyping,butitotherwiseseemsthatevencommentingonhnworksinVerso.Editingappearstoworkaswell,thoughlinebreaksdon't(maybebecauseofspaces...).

Edit (with Firefox): the above text is from Verso. Logging in works (though the session is not stored across restarts), as does both commenting and editing comments. Since space can't seem to be entered, word wrapping doesn't work with text entered in Verso, though it does seem to work when there is text with spaces (eg, this edit). A cursor also doesn't appear for me, making editing a challenge.

mminer237
2 replies
2h9m

In my tests, it's pretty unusable atm. Probably half of websites render very wrong and servo crashes nonstop.

Galanwe
1 replies
22m

It cannot crash its written in Rust.

IshKebab
0 replies
11m

Rust can absolutely crash. It crashes ("panics" in Rust terminology) in a memory safe way but it's still a crash (please don't try to redefine the word "crash" to be more specific than it actually is).

And Rust can still have unsafe code so it can crash in memory unsafe ways too (though it is very unlikely unless you're doing things very wrong).

culi
2 replies
2h54m

I'm assuming that's in reference to these tests? https://wpt.fyi/results/?label=experimental&label=master&ali...

For comparison, there are 1.9 million tests

  Chrome passes 97.14%
  Edge passes 96.98
  Firefox passes 95.96
  Safari passes 95.22
I wonder where Ladybird stands in this

culi
0 replies
2h0m

Oh thanks. Seems like Servo is way ahead of LadyBird

hanniabu
6 replies
2h41m

There's still zero day exploits found in chromium, wouldn't using using this put you at a huge risk of running into malware in the wild that this browser can't protect against?

38
2 replies
2h6m

I agree, no one should ever bother writing a new browser again, too risky. We should just use chrome forever

hanniabu
1 replies
1h14m

Why not just fork chromium with all the Google analytics/tracking removed?

devsda
0 replies
55m

There's ungoogled chromium for that.

Also doing that doesn't solve the standards problem we currently have.

Google is able to push through any "standard". And those standards "unwittingly" help them maintain their search/ad dominance or prevent competitors. For example see manifest v3 or FloC (a.k.a Topics API).

Once they gain enough traction and become indispensible, you either implement them or risk losing users.

swiftcoder
1 replies
40m

Maybe if Chromium was written in a memory-safe language there would be fewer zero-days?

fabrice_d
0 replies
0m

Yes, and that's why Chromium moved to allow Rust code (pretty much like they did for Android).

bee_rider
0 replies
28m

I somewhat wonder—Firefox and Chrome are in a constant race to have the best JavaScript performance.

In general, the sites I want to browse use minimal JavaScript, prudently, if at all, just where it is strictly necessary to add little dynamic features. So, I don’t really care about JavaScript performance at all.

Optimization sometimes introduces additional complexity, which might open up the possibility of security holes (at least it seems to be the case to me, as a not-security-related programmer. I don’t know anything about security on a technical level, so I’m interested in other perspectives on this from people that actually work in those sorts of fields). I wonder if there’s room for a browser engine that ditches performance and just focuses on correctness and safety.

Rendering documents ought to not be computationally intensive, right? Advertisements of blazing fast JavaScript performance make me worry what corners have been cut.

tcper
4 replies
3h15m

Have a read about Servo, it is binding with SpiderMonkey as JS engine.

Is there some chance, that servo decomposed from SpiderMonkey? If it is not, I don't think anyone can tell difference between firefox and other browser use Servo.

culi
3 replies
2h47m

There's a lot more to a browser than the JS engine. And in general, we would want all of the browsers JS engines to be essentially the same. I think starting with an existing engine is the most logical approach

abhinavk
1 replies
2h24m

True but at this point of time, Firefox and Servo are using the same CSS engine, same JS engine and same compositor and rendering engine.

fabrice_d
0 replies
2h10m

That still leaves you with at least the layout engine, all the DOM apis, all the networking, multi process model & sandboxing, web extensions support, that are different implementations.

akira2501
0 replies
15m

we would want all of the browsers JS engines to be essentially the same

You say until there is a CVE found.

Keyframe
1 replies
3h33m

it's five years old release. Sounds reasonable or you're expecting release to work all the way back to commodore 64?

abhinavk
0 replies
3h26m

macOS 13 was released in Q4 2022.

mdaniel
0 replies
1h21m

I'd hypothesize it's due to https://github.com/versotile-org/verso/blob/07a88a86347c6763... and I thought maybe that was the lowest GH offered since they used an actual number versus "-latest" but no, GH does offer 12 https://docs.github.com/en/actions/using-github-hosted-runne...

Since they already went to the trouble of writing the GHA, I just downgraded and gave it a whirl and it both completed and the resulting artifact launched a-ok on my 12.7.6 x86_64: https://github.com/mdaniel/verso/actions/runs/10341237698/jo...

I'm posting this reply from that build, although I had to compose the answer over in FF because the textarea doesn't scroll :-D

nequo
3 replies
3h50m

I hope that this project will succeed.

Incidentally, Verso is also the name of Lean 4’s DSL for typesetting documentation.[1] We are running out of words in the English language.

[1] https://github.com/leanprover/verso

mroche
0 replies
2h56m

There are two simple solutions to this:

1. Translate the word to another language.

2. Get creative and make up an original name. Mixed translations, word-bashing, not-actual-words, there's a lot of options!

Okay, so the latter isn't super easy but can be a lot of fun to do!

In this case, it seems like a play on the core dependency name than choosing the actual word of "verso": servo -> verso.

Emma_Goldman
0 replies
1h57m

It's also the name of the most successful left-wing press in the English-speaking world:

https://www.versobooks.com

627467
0 replies
2h6m

we are running out of words

in a 1000 years we'll be making this observation across the galactic internet.

ape4
3 replies
4h51m

Typo dont' -> don't

revskill
2 replies
4h29m

Actually i prefer the dont', easy to comprehend and spell.

jeffhuys
0 replies
3h35m

Wow. Every single day I’m still amazed by people.

azangru
0 replies
4h21m

Wouldn't dont be even easier?

TheRealPomax
3 replies
2h4m

It'd be nice if people stopped recommending "yet another new and exciting package manager for Windows" that you have no idea of whether you can trust it or not.

Git, Python, llvm, cmake, and curl all have perfectly normal windows installers available from their own websites, and if you're a programmer who has to, or chooses to work on Window, it's a good bet you already have either most or all of these already installed, making the job of completing your bonus objective probably one, maybe two installs at most.

ncruces
1 replies
1h19m

Scoop is nice because, like homebrew, it's easy for package creators to create their own “buckets” and distribute packages that way.

TheRealPomax
0 replies
1h7m

I'm sure, but it's also "yet another package manager" because everyone has their own favourite package manager. It's a nit, but it's nice when a README.md goes "you need X, Y, and Z" and doesn't pretend you need a specific method for that. Tiny phrasing change, zero real world difference of course, but it's a nice little sign that the folks running a project know that you know what you're doing on the OS you're working with (either by choice, or by paycheque =)

beart
0 replies
48m

Ideally, winget would be the way to go, but I haven't had good luck with it. There are a number of limitations and it doesn't feel like a polished and curated repo. It just feels like a wrapper around chocolatey, which has its own problems.

Microsoft is the reason alternative package managers exist

ericyd
2 replies
3h26m

It might be the head cold I'm recovering from, but it took me about 3 passes to comprehend their tagline:

A web browser that plays old world blues to build new world hope
onli
0 replies
2h55m

Sounds like a Fallout New Vegas reference to me. Or maybe it is referencing what FNV was referencing?

NBJack
0 replies
3h0m

I'm healthy at the moment and I'm still not sure I understand. Poetic perhaps, but a bit nonsensical.

Old world as in the past? Older technology? Older ideas? Bad ideas?

Blues, as in the musical genre? Or the feeling it conveys? Are we riffing on it here? Plays strongly suggests music, but the blues originated from specific cultural roots tied to the end of slavery (which is implied even further by 'old world blues').

New world, as in a better tomorrow, or something more akin to a new world order?

Hope I think I get.

clot27
2 replies
5h6m

Isn't servo is in development for more than a decade? They already have legacy code before it even became stable, lol.

orangepanda
0 replies
4h11m

Any code is legacy code once pushed upstream

another-dave
0 replies
5h2m

What do you mean by legacy code here?

Narhem
1 replies
4h20m

I run away from anything with verso in it

shreddit
0 replies
4h10m

Care to explain?

samstave
0 replies
2h4m

Serious Question: With risk of being hated, this is an honest question:

I've never sought out another browser than using pretty much any of the big three...

Just because I have never had any sort of personal workflow/painpoint/interest in any of these other browsers/engines, that frankly I had never heard of and then another thing pops up every few years with yet another new one that I havent heard of -- but they all seem to have lively communities...

The question is:

What is the primary drive/utility that you/others are seeking/gaining with these none FF/chrome/edge things?

rhabarba
0 replies
1h37m

Every time a new browser appears and is applauded by HN, a NetSurf dev opens a beer...

mariusor
0 replies
5h1m

I'm happy to see work being done in integrating Servo into custom browser chrome. My dream browser would be a servo based Qutebrowser. I can only hope.

jijojohnxx
0 replies
2h58m

Interesting perspective!

erlend_sh
0 replies
4h58m

In other exciting Servo-browser news, Servo and Redox OS have submitted a joint proposal to fund the porting of SpiderMonkey and WebRender to Redox: https://www.redox-os.org/news/this-month-240731/

cosmicradiance
0 replies
1h27m

If anyone is willing to put an effort in building a new browser, I have just one wish - allow embedding open-source transformers in the browser; available for both the user and websites/extensions.

F3nd0
0 replies
3h41m

And of course, they've gone with a pushover licence. Or two of them, it looks like.