# Chawan 0.5.0
Version 0.5.0 of the Chawan TUI browser has been released.
A tarball of the source tree is available here. Please refer to the README.md file for compilation instructions.
A static binary distribution for
amd64 Linux
also exists.
To install it, extract the archive somewhere and run make install as root.
(To uninstall, run make uninstall.)
The same distribution is also available as a .deb package.
## What's new
This release primarily focuses on performance improvements. In addition, it also provides improved standards-compliance, as well as some new features.
The "browsecap" facility has been added to allow for dispatching URI schemes to external programs, similarly to what mailcap already enabled for MIME types. The most obvious benefit is that you can automatically open
mailtoURLs in your favorite mailer, but it also allows for other use cases such as redirecting YouTube URLs tompv. See cha-mailcap(5) for details.The select widget (from a
<select>element) as well as the context menu (opened withCor right click) is now customizable using a custommenu.jsfile. There is a menu for listing buffers, too.A significant change under the hood is that instead of the legacy refc garbage collector, we now use (ARC](https://nim-lang.org/docs/mm.html). So instead of two garbage collectors (Nim + QuickJS) now there is only one (QuickJS, accessed with a custom
JSReftype from Nim), which has improved performance significantly.Stay tuned for a technical writeup I've been working on that details how exactly this new memory model works.
0.5.0 also comes with many other optimizations in the HTML parser, CSS cascading (so large Wiktionary pages load in one second and not seven), getElementById (at last it's O(1)), JS string handling (less copies), etc.
More DOM features work: compliant NodeIterator (had to get the spec fixed for this one), TreeWalker, MutationObserver, etc.
Also, the "feature" where window.x retrieves the element with id "x" now works (used by many Web Platform Tests, but also accidentally by lots of websites).
On the CSS side: oklab/oklch, relative colors, multi-keyword CSS display values, etc. Plus a lot of bug fixes.
This is far from an exhaustive list of all changes. For a full changelog, see the NEWS file.
## What's next
It's getting old by now, but: persistent connections. Browsecap was a prerequisite for it, so at least we're getting closer. I won't promise anything at this point...
I also have some half-finished web APIs stashed which the next release will likely support. Plus, as usual, lots of other ideas - we'll see how many can come to fruition until then.