Skip to content

Kinetoor Architecture

Kinetoor (Κινητήρ — "the motive force") is Aephoron's rendering engine. Like Chrome uses Blink or Firefox uses Gecko, Aephoron uses Kinetoor — a Servo fork written entirely in Rust.

Process model

aephoron-desktop (egui + Winit — main UI thread)
        │ IPC (ipc-channel)
Constellation Thread (WebView coordinator)
   ├── Script Thread   — SpiderMonkey v140 + DOM Web APIs
   ├── Layout Thread   — Flexbox, Grid, Tables (Servo layout)
   ├── Network Thread  — Hyper + Rustls, HTTP/1.1–3, WebSockets
   └── Paint Thread    — WebRender GPU compositor

Each subsystem runs in isolation — a script crash does not take down the browser shell.

Component map

ComponentResponsibility
script/DOM, Web APIs, SpiderMonkey bindings (~200K LOC)
layout/CSS layout engine
net/HTTP, TLS, WebSockets
paint/WebRender integration
constellation/Tabs, navigation, permissions, IPC
media/GStreamer video/audio, WebRTC (roadmap)
storage/IndexedDB, localStorage, cookies
devtools/Chrome DevTools Protocol (in progress)
canvas/Canvas 2D + WebGL
webgpu/WebGPU (feature flag)

Supporting crates

  • html5ever — WHATWG HTML parser
  • stylo — CSS engine (Mozilla Stylo fork)
  • webrender — GPU rasterization (Firefox heritage)
  • mozjs — Rust bindings to SpiderMonkey
  • surfman — OpenGL/Metal/Vulkan context abstraction

License & lineage

  • Base: Servo — Mozilla Research → Linux Foundation
  • License: MPL-2.0
  • Version: 0.4.0 pre-release
  • ~521K lines of Rust across 36+ engine components

Why Rust

Memory safety is compiler-guaranteed — no manual refcount errors in the networking or layout hot paths. This is the primary architectural bet versus C++ Chromium forks.

Further reading