←back to thread

233 points monax | 1 comments | | HN request time: 0.203s | source

We’ve been working on Vaev, a minimal web browser engine built from scratch. It supports HTML/XHTML, the CSS cascade, @page rules for pagination, and print-to-PDF rendering. It even handles calc(), var(), and percentage units—and yes, it renders Google.com (mostly).

This is an experimental project focused on learning and exploration. Networking is basic (http:// and file:// only), and grid layouts aren’t supported yet, but we’re making progress fast.

We’d love your thoughts and feedback.

Show context
danpalmer ◴[] No.44025713[source]
I'm interested in why C++ was chosen for this? Browsers are notoriously hard to secure, they're effectively mean to be RCE vulnerabilities! Securing C++ binaries is hard and has in recent years been called out by numerous organisations and companies as being the root cause of many classes of security vulnerability. With languages like (but not limited to) Rust, we now have better options.
replies(6): >>44025737 #>>44025944 #>>44026074 #>>44026430 #>>44027061 #>>44027326 #
zarzavat ◴[] No.44026430[source]
There already is a Rust web engine, it's called Servo, and it's currently being overtaken by the C++ Ladybird project.

Rust is a bad language to write an open source browser in because the hardest problem of building a browser is not security but the number of people you can convince to work on it.

C++ programmers are a dime a dozen, there's a huge number of people who write C++ for 8 hours a day. The Rust community is mostly dabblers like myself.

replies(3): >>44026510 #>>44026953 #>>44026975 #
WD-42 ◴[] No.44026953[source]
But ladybird is ditching c++ for swift?
replies(2): >>44027152 #>>44027295 #
1. zarzavat ◴[] No.44027152[source]
AFAIU they are not ditching C++, they are exploring writing some parts of the engine in Swift using the new C++ interop features in Swift. But a wholesale switch to Swift doesn't seem realistic.