Wren a web browser where WebAssembly runs everything, JavaScript included

Welcome to Wren

Wren is a web browser written from scratch in Odin. Its JavaScript engine is its own, compiled to WebAssembly and run in a sandbox: one instance per page and per worker, with a capped heap and a deadline on every call. A page can also be a single .wasm file that calls the browser directly, no JavaScript at all. Style, layout, painting, the DOM and the network are new code; there is no Chromium underneath.

Download Wren 0.6.28 for Windows x64 or Linux x86-64 (an early preview, free during the beta; PolyForm Strict license)

What works

  • Documents and CSS-heavy sites, within a few percent of Edge pixel for pixel.
  • Sites whose scripts add to the page: menus, themes, web components, observers.
  • WebAssembly pages with the DOM, events, timers, fetch, WebSocket, workers and storage.

What doesn't, yet

  • JavaScript is interpreted, with a JIT for numeric loops only, so script-heavy pages are slow.
  • About 72 % of the members of the web platform's Web IDL are implemented; no WebGPU or WebRTC, WebGL without transform feedback.
  • Linux needs glibc 2.39 or later, and decodes video in software for now.

Some numbers

1.4msCPU to wheel-scroll 10,000 paragraphs (99th percentile, under the 5.56 ms of a 180 Hz frame)
2.3msGPU for the same
1.3msfor a page's JavaScript to start
7nsa call from WebAssembly into the browser (58 modules, 1,482 functions)
0.3sfrom launch to the start page drawn

Measured on the development machine. The rest is in the features, the changelog and the architecture notes.