Skip to content

Status

Checked against 54d987f on 2026-11-10 by Capy (drift after the docs-site merge). The files it covers are unchanged since.

niso has no release and no packages. Everything below is about the main branch at the commit this page was checked against. “On main” means the code is there and tests/check.sh exercises it; it doesn’t mean finished.

The DOM, CSS (stylo), layout (block, inline, flex, grid, positioning, tables through blitz and Taffy) and events are on main and are what everything else stands on. How much of the web platform passes its tests is measured with web-platform-tests. Across the web features Baseline calls widely available,

12.6% (recorded at f3b4fa8, 2026-11-10)

of the

1,575,968 (recorded at f3b4fa8, 2026-11-10)

subtests that run pass. Counted by feature instead,

122 (recorded at f3b4fa8, 2026-11-10)

of 579 (recorded at f3b4fa8, 2026-11-10) features pass at least nine in ten of their subtests, but that count weighs a feature with one subtest the same as Flexbox; the support page also counts only features with enough subtests to mean something.

452 (recorded at f3b4fa8, 2026-11-10)

features have tests that run at all. Many features have no number because their tests are reftests, which niso’s runner doesn’t run yet. Per feature: Web platform support.

Host Platforms Status
SwiftUI (hosts/apple) iOS, iPadOS, macOS, tvOS, visionOS, watchOS; CarPlay through templates On main. Screens are compared with Chrome on the iOS Simulator (tests/check.sh --ios), the Mac’s input is replayed into the macOS host (--mac), and CarPlay’s list is checked. Widgets and Live Activities come from the page’s surfaces. Apple platforms
Compose (hosts/android) Android phones On main, with a Glance widget and an ongoing notification. Screens compared on the emulator (--android). Wear OS and TV aren’t built. Android
iced (hosts/iced) Linux desktop (also builds on macOS) On main. Its offscreen screen check stops at the first page for now (Linux notes). Desktop
WinUI 3 Windows Planned.
@niso/web The browser, with the real DOM Planned.
Templates Android Auto, watch complications Planned; CarPlay’s templates exist.

Last run on a simulator, emulator or device

Section titled “Last run on a simulator, emulator or device”

“On main” above means a host builds and its code is there. The default tests/check.sh runs no host on a simulator, emulator or device; the --ios, --android, --mac and --iced checks do, and their results aren’t recorded with a commit. What is recorded is the Apple host’s platform table, where each platform’s row says what ran on it:

PlatformWhat ranRecorded at
iOSiOS 27 simulator: counter, radio46a72f8, 2026-11-10
iPadOSiPadOS 27 simulator (iPad Air 13-inch): counter, in a resizable window46a72f8, 2026-11-10
macOScounter, VS Code for the web (--page)f716e83, 2026-11-10
visionOSvisionOS 27.2 simulator: counter46a72f8, 2026-11-10
tvOStvOS 27.2 simulator: counter46a72f8, 2026-11-10
watchOSwatchOS 27.2 simulator: counter46a72f8, 2026-11-10
CarPlayverified in the app only (tests/carplay/check.sh): DeviceHub's CarPlay window was unavailable on Xcode 27.20efc56a, 2026-11-10

From docs/hosts/apple.md, the Platforms table, read when this site was built.

Every Apple platform also builds for its devices, but no run on an Apple device is recorded: the runs above are on simulators and the Mac. The other hosts have no recorded run at all. The Android host’s screen cases have expectations of their own (tests/screens/expectations.json), so they have been compared on the emulator, but not when or at which commit; the same goes for iced’s offscreen check. WinUI and @niso/web don’t exist yet.

Engine Status
QuickJS-ng On main; the default, and what every check and the WPT run use.
Porffor (ahead of time) On main. The counter, scroll and controls examples and the Svelte fixture run on it headless, radio on Android and the iOS simulator, and ihatemyphone’s panel and setup pages headless; its WeakRef and FinalizationRegistry don’t release objects yet, which blocks shipping on it (Porffor notes).
Node, Deno, Bun (niso-napi) On main: V8 under Node and Deno, JavaScriptCore under Bun, headless. Opening a window from Node is on a branch. (Node-API notes)
JavaScriptCore embedded, V8 embedded Planned.
Static Hermes Planned, to be evaluated against Porffor.
Language Status
JavaScript and TypeScript Pages, on any engine above.
C, Zig, Go On main, through niso.h; the timer app in each is built and tested by tests/check.sh.
Rust On main, through the C API, with the declarations an app uses written by hand (examples/lang/rust). Generated Rust client bindings are planned.
Java (and Kotlin on the JVM) On main: bindings/jvm, a class per DOM interface over JNI, on the desktop JVM and on Android.
Swift The Apple host calls the C API; generated Swift bindings are planned.
Python Planned (PyO3).
Piece Status
Native controls On main: buttons, switches, sliders, progress, text fields, radio groups as segmented controls or lists. Pickers, menus, sheets and the rest of the control set are planned (Native controls).
Surfaces On main: home screen widgets and Live Activities on Apple platforms, a Glance widget and an ongoing notification on Android, CarPlay screens (Surfaces).
Storage On main: localStorage and IndexedDB on SQLite, behind a driver hosts can replace (Storage).
Workers Dedicated workers on main; no shared or service workers (Workers).
Text Parley lays out, the platform draws, on main. Text can’t be selected or copied outside native text fields, and only native fields take IME input; Range and the Selection API are on the selection-range branch, not on main. Native text engines (TextKit 2, StaticLayout) as an opt-in are planned (Text).
Accessibility Not wired up to any host: a niso app isn’t usable with a screen reader today. An AccessKit tree from the DOM and ARIA is the plan (Accessibility).
Electron compatibility In progress on a branch (Electron compatibility).
Real apps TodoMVC, Excalidraw, VS Code for the web and more are run by tests/apps/run.sh, with their status in Real apps.
Tooling No package, Vite plugin or niso CLI yet (all planned): build from a checkout with the repository’s scripts.