Wren 0.5.0
Wren 0.5.0 drives from Puppeteer, decodes frames for pages (WebCodecs), draws the web's newer text and colour, and moves its JavaScript glue and platform layers toward Linux. WebAssembly is still the only execution engine.
This is still a beta, under development, and Windows-only: the Linux work of this version is code that compiles and is checked at the type level, not a browser anyone has run there.
Highlights
- A remote debugging port.
wren --remote-debugging-port=9222speaks the Chrome DevTools Protocol (Puppeteer and Playwright attach;/json/versionand/json/listanswer), and--headlessruns with no window at all (it renders to an offscreen target, so captures still work; no desktop session is needed).wren ctl startkeeps a window that is never shown (--hidden) unless you ask for--headless. Known limits are indocs/cdp.md(noFetch.*, no response bodies). - More of the web. WebCodecs (
VideoFrame,ImageDecoder,VideoDecoder,AudioDecoder,AudioData, encoded chunks; the encoders refuse honestly),URLPattern,scheduler.postTask/yieldandTaskController, Web Locks,Intl.DurationFormat,bitmaprenderercanvases, WebVTT text tracks and audio and video tracks,requestVideoFrameCallback, a VP9 software decoder, Managed Media Source, long animation frames with their render timing,navigator.userActivation,element.sheetanddocument.styleSheets, emoji in a canvas,createImageBitmapfrom more sources. - Natively implemented.
Intl, custom elements, shadow DOM, frames, the async clipboard and the IndexedDB façade moved from JavaScript prelude to native code (IndexedDB passes the same WPT as before). - Text.
langselects theloclfeature, optical sizing,text-rendering, colour glyphs, and smoothing of canvas text on the CPU. - Pages and chrome. Middle-click autoscroll, a translucent
− % +zoom indicator at the end of the address bar, an optional new-tab page of public-domain artworks (browser.newtab.art.enabled, off by default), a font preview for WOFF2, the content blocker's##^filters, DevTools improvements, a silent--uninstalland a winget manifest. - Partial redraw. The compositor can repaint only what changed (
browser.gpu.partial_redraw, with a verifier that compares against a full frame). - The toolkit 0.50.0. A Linux window (X11 and Wayland) with its platform services, a neutral wgpu render surface, and the config, i18n, arena, instance, testkit and dbus packages. Wren's
src/browsernow type-checks for Linux; nothing of it was run there. - Web platform tests. The measured folders now pass about 130 000 subtests (urlpattern 77 %, scheduler 60 %, web-locks 72 %).
Known limits
- Linux: the window, the services (clipboard, drag and drop, tray, portals, accessibility) and the render path were written and type-checked, not run. Canvas 2D has no wgpu backend yet.
- WebCodecs: no video or audio encoder; software H.264 decoding is missing and hardware frames give an error, not pixels.
- CDP:
Page.getFrameTreeis empty; noFetch.*, no response bodies. - The new-tab artworks come from two sources (Cleveland Museum of Art, Wikimedia Commons); two others were not usable.
- Several features were exercised by tests and a few manual sessions, not over a long time: partial redraw,
lang/loclshaping, the VP9 decoder and the video fast path.