←back to thread

233 points monax | 1 comments | | HN request time: 0.001s | 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
abhisek ◴[] No.44023465[source]
What’s the long term goal of this project beyond learning? Building a browser to support the modern web is a humongous work IMHO.
replies(2): >>44023507 #>>44023516 #
monax ◴[] No.44023507[source]
The main goal is great support for static documents rendering as it's being used at the core of the paper-muncher [1] PDF rendering engine, meant to replace wkhtmltopdf at odoo. But we don't exclude general web browsing and JavaScript support at some point.

[1] https://github.com/odoo/paper-muncher

replies(4): >>44023859 #>>44024835 #>>44025100 #>>44026661 #
giovannibonetti ◴[] No.44025100[source]
At work we recently switched from Wkhtmltopdf to Typst, which is a breath of fresh air. It is very fast and generates PDFs from scratch without needing to involve HTML or a browser engine. It is implemented in Rust and distributed as a self-contained binary.

This blog post convinced us that the switch was worth it: https://zerodha.tech/blog/1-5-million-pdfs-in-25-minutes/

replies(2): >>44025244 #>>44025309 #
1. stevage ◴[] No.44025244[source]
Oh interesting. I use their "old stack" for a couple of much smaller projects and it works fine, but it does seem a bit ridiculous to be starting up a whole chrome instance just to convert one file format to another.