BuildABrowser
BuildABrowser is a project aiming to build a browser and its rendering engine in Java, and then (eventually) document it such that others can rebuild it for themselves.
Download Release v0.1.1:
The Linux/Window builds require a JVM (Java 24 or higher).
The browser uses the Skija painter by default. To use Java2D, pass the -gbe java2d flag.
Embedding Guides:
You can embed the BuildABrowser renderer in your Swing application or non-mobile Android Jetpack Compose application!
Take a look at some steps:
-
Learn more about BuildABrowser. Initialize your repository.
-
Open a window with text loaded from a file or server, using a URL passed via the command-line.
-
Get a feel for the browser DOM, creating a basic tree that will suffice for some basic HTML parsing.
See a demo!
Each of the screenshots below was rendered by BuildABrowser Browser.
Browserling
(click to enlarge)
Not that it's useful in any meaningful way without JS, but I thought it looked cool.
DeviantArt Gallery
(click to enlarge)
There are only two columns because DA uses JS to reflow the layout which the browser does not support. In theory, you can also copy the 'td' cookie from another browser, which overrides layout.
GitHub PR Diff
(click to enlarge)
GitHub has recently been making me login... which is not ideal considering the browser is not hardened for security...
Old Reddit
(click to enlarge)
Unfortunately, Old Reddit now requires login, and the login page is completely blank on the browser. This is a screenshot of what it looks like if you do manage to get logged in. (Especially annoying since the browser is not hardened for security...)