I want to develop a new browser from scratch. Where can I find a curated list of web standards and APIs I should implement? My Google fu is failing me. Help?
You must have a lot of time on your hands. And a lot of patience.
@jens I don’t. But I want to show that the web is so complicated nowadays that there is no way to develop a browser from scratch.
Depends on what you mean with "from scratch". I made a start some years ago. Libxml and cURL do a lot for you, and I wrote a CSS parser that is good enough to determine the final combined style for an element in a couple of days. There are a ton of convenience components that need time to develop, but aren't particularly hard. The remaining huge chunk is a good renderer.
I think mostly it needs time/money, which would be difficult enough.
@jens a good start would be a curated list of standards and APIs that are needed.
@jwildeboer @jens Well, there is a company that developed a browser from scratch recently: https://www.quirksmode.org/blog/archives/2020/01/new_browser_on.html
I doubt though that it supports all the bells and whistles Chrome and Firefox do.
Basically, there are some core principles that the W3C have been using when coming up with the newer standards, and neither Mozilla nor Google have exploited them fully. It *should* be possible to describe the web in terms of a few basic primitives. (The only issue with this was CSS, but I think there s a way 'round that by ripping off XSL-FO.)
If you end up doing this, could you ping me?
@jwildeboer use libraries. Otherwise it is like building a skyscraper and casting your own iron and melting your own glass.
@mirek which libraries could I combine? Is there a list?
@jwildeboer Well, if you use WebEngine (formerly WebKit) then browser is one page long code. And you can focus on Add-ons and/or UI. If you want to fiddle with parsing HTML then you go one or two levels down. I like WebEngine, because it is nicely documented https://doc.qt.io/qt-5/qtwebengine-index.html If you do not like WebKit you can try alternatives https://alternativeto.net/software/webkit/
Mastodon instance for people with Wildeboer as their last name