Skip to content

React capability matrix — alpha 0.1.0a1

Baseline: the stable exports actually present in React/React DOM 19.3.1, checked on 2026-11-02. This document distinguishes an implemented adapter from integration coverage, and from unimplemented framework/tooling work.

Capability Implementation and verification
Function components, props, children, composition Implemented; browser exercised
Class components and setState Implemented; mount/update/unmount exercised
PureComponent and advanced class lifecycles Adapters; not individually covered by browser tests
Legacy UNSAFE class lifecycles Not adapted
HTML, SVG, custom tags, CSS, ARIA, RTL attributes Generic DOM adapter; controls and styling exercised; no exhaustive DOM attribute suite
Virtual DOM, keys, batching Real React renderer; keyed reorder exercised
State including Python objects; reducer Implemented; browser exercised
Context and refs; forwarded refs; imperative handles Implemented; browser exercised
Effects, layout/insertion effects, cleanup Implemented; browser exercised
Memo and callback hooks Implemented; bailout and callback exercised
IDs and hydration identity Implemented; server/browser exercised
External store Implemented; subscription/update exercised
Deferred values and transitions Implemented; browser exercised; no performance equivalence claim
Optimistic state Implemented; optimistic result and final commit exercised
Action state and form status Implemented; async submission exercised
Effect events Implemented; latest committed state exercised from effect
Debug values Adapter; upstream DevTools behavior not separately verified
use, Suspense, lazy Implemented; async Python data and lazy component exercised
Error boundaries with reset Implemented; exception and recovery exercised
Portals Implemented; placement outside root exercised
Activity Implemented; hidden state preservation exercised
ViewTransition, Profiler, StrictMode Upstream component adapters; not fully scenario-tested
cloneElement and Children utilities Implemented; clone/count exercised; map/toArray adapters
Resource hints, form reset Thin React DOM adapters; not individually scenario-tested
cache/cacheSignal/addTransitionType Thin adapters; RSC cache environment not implemented
Client createRoot, render, unmount Implemented; mount/replacement exercised
hydrateRoot Implemented; server HTML and client interaction exercised
Server string/static/stream rendering Real React DOM via Node/Pyodide; native integration tests
Server resume and partial prerender APIs Not adapted
React Server Components / Flight Not implemented
Python server functions / server actions transport Not implemented; browser-local form actions are supported
React Compiler for Python Not implemented
Full Rules-of-Hooks static linter for Python Not implemented; runtime React checks still apply
Fast Refresh preserving state Not implemented; full-page development reload supplied
React Native or independent native renderer Outside current DOM framework scope
JS React component interop Registered components and native JS props exercised
JS component registration in SSR Not supported by CLI; explicit error
Additional micropip packages in SSR Not supported by CLI; explicit error
Routing Basic optional History API router; browser navigation exercised
Build/CLI/source isolation Implemented and native tests supplied
Browser portability Chromium tested; Firefox/WebKit pending
Long-run memory and performance Diagnostics available; production soak testing pending
Publishing, package ecosystem, hosted service Not created

Work toward a stable release

  1. Harden the existing adapters. Broaden browser tests for advanced lifecycle behavior, Suspense rejection/cancellation, StrictMode, transitions, memory and interoperability. Add performance baselines, API typing and cross-browser CI.
  2. Complete framework delivery. Persistent SSR workers with request isolation, true progressive HTTP streaming, packaged SSR dependencies, custom JS server entries, subpath hosting and reproducible deployment tests.
  3. Improve Python tooling. Rules-of-Hooks analysis, editor diagnostics, state-preserving development refresh and an optimized build pipeline.
  4. Design the server-component protocol. Python server/client boundaries, serializable props, Flight integration and authenticated server-function transport require a separate design and test suite. Browser-local Python callbacks are not a substitute for server functions.
  5. Stabilize and publish. Choose the final name, establish compatibility promises, audit dependencies and publish a release only after conformance targets are met.

The proposed public wheel version is 0.1.0a1 and stays alpha because several items above are unresolved. No percentages of complete React parity are claimed.