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 core
Section titled “The core”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:
| Platform | What ran | Recorded at |
|---|---|---|
| iOS | iOS 27 simulator: counter, radio | 46a72f8, 2026-11-10 |
| iPadOS | iPadOS 27 simulator (iPad Air 13-inch): counter, in a resizable window | 46a72f8, 2026-11-10 |
| macOS | counter, VS Code for the web (--page) | f716e83, 2026-11-10 |
| visionOS | visionOS 27.2 simulator: counter | 46a72f8, 2026-11-10 |
| tvOS | tvOS 27.2 simulator: counter | 46a72f8, 2026-11-10 |
| watchOS | watchOS 27.2 simulator: counter | 46a72f8, 2026-11-10 |
| CarPlay | verified in the app only (tests/carplay/check.sh): DeviceHub's CarPlay window was unavailable on Xcode 27.2 | 0efc56a, 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.
Engines
Section titled “Engines”| 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. |
Languages
Section titled “Languages”| 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). |
Around the core
Section titled “Around the core”| 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. |