Wren

Wren 0.1.0

The first public build of Wren, a small web browser for Windows where WebAssembly is the only execution engine: no JavaScript, the web APIs are Wasm imports generated from api/*.widl.

This is a prototype. It loads and draws many real sites, but their JavaScript never runs.

Highlights

  • WebAssembly runtime: Wasmtime 49 (Cranelift), compiled-code caches in memory and on disk (HMAC-authenticated), a deadline on every call (epoch interruption), several modules per document, memory64, dedicated workers.
  • Web API from one description: 21 modules, 289 functions (DOM, events, forms, timers and rAF, fetch with streams, AbortController, URL, encoding, crypto, storage, history, performance, images, EventSource, WebSocket, workers), with generated host trampolines, Odin SDK, documentation and conformance tests.
  • HTML and CSS: Lexbor parsing, cascade layers, custom properties and @property, :has / :is / :where, media and container queries, Color 4 / 5, math functions, web fonts (WOFF, WOFF2), transitions and animations, color-scheme.
  • Layout: block, inline (bidi), floats, positioning (sticky included), flexbox, grid with subgrid, tables; incremental relayout, parallel style and paragraph layout.
  • Painting: a retained GPU compositor on Direct3D 11; transforms, rounded clips, opacity groups, filters, backdrop filters, blend modes, clip paths, masks, exact box shadows, gradients in every color space; sRGB blending as in other browsers.
  • Text on DirectWrite: font fallback, OpenType shaping, bidi, color glyphs in every format.
  • Images: WIC (PNG, JPEG, GIF, BMP, ICO, TIFF) plus built-in WebP, AVIF and SVG decoders, ICC color management.
  • Network and security: WinHTTP, a Fetch Standard policy layer (CORS, credentials, redirects, referrer policy, mixed content), cookies (RFC 6265bis, third-party cookies blocked), HSTS, Content Security Policy 3.
  • The browser: tabs, history, find in page, selection, context menus, zoom, view-source, about:config for every setting, frame pacing on the display's refresh rate with a status bar and frame statistics panel.

Download

wren-0.1.0-windows-x64.zip: unzip, run wren.exe (Windows 10 or 11 x64, Direct3D 11). demo.bat serves the demo pages of examples/site and opens them. Check the download against SHA256SUMS.txt.

Edit this page on GitHub