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¶
- 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.
- 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.
- Improve Python tooling. Rules-of-Hooks analysis, editor diagnostics, state-preserving development refresh and an optimized build pipeline.
- 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.
- 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.