Renderers (Client Libraries)¶
Renderers convert A2UI JSON messages into native UI components for different platforms.
The agents are responsible for generating the A2UI messages, and the transports are responsible for delivering the messages to the client. The client renderer library must buffer and handle A2UI messages, implement the A2UI lifecycle, and render surfaces (widgets).
You have a lot of flexibility, to bring custom components to a renderer, or build your own renderer to support your UI component framework.
Maintained Renderers¶
| Renderer | Platform | v0.8 | v0.9 | Links |
|---|---|---|---|---|
| React | Web | ✅ Stable | ❌ | Coming soon |
| Lit (Web Components) | Web | ✅ Stable | ✅ Stable | Code |
| Angular | Web | ✅ Stable | ✅ Stable | Code |
| Flutter (GenUI SDK) | Mobile/Desktop/Web | ✅ Stable | ✅ Stable | Docs · Code |
| SwiftUI | iOS/macOS | — | 🚧 Planned Q2 | — |
| Jetpack Compose | Android | — | 🚧 Planned Q2 | — |
Check the Roadmap for more.
Ecosystem Renderers¶
The community is building A2UI renderers for additional platforms:
- json-render — Vercel's React library for rendering A2UI catalogs via Zod schemas (comparison)
- A2UI-Android — Community Jetpack Compose renderer, 20+ components (~15 ⭐, v0.8)
- a2ui-react-native — React Native renderer for iOS/Android (~9 ⭐, v0.8)
See the full ecosystem renderers list for more community projects and how to submit your own.
How Renderers Work¶
- Receive A2UI messages from the transport
- Parse the JSON and validate against the schema
- Render using platform-native components
- Style according to your app's theme
Using a Renderer¶
Get started integrating A2UI into your application by following the setup guide for your chosen renderer:
Building a Renderer¶
Want to build a renderer for your platform?
- See the Roadmap for planned frameworks.
- Review existing renderers for patterns.
- Check out our Renderer Development Guide for details on implementing a renderer.
Key requirements:¶
- Parse A2UI JSON messages, specifically the adjacency list format
- Map A2UI components to native widgets
- Handle data binding, lifecycle events
- Process a sequence of incremental A2UI messages to build and update the UI
- Support server initiated updates
- Support user actions
Next Steps¶
- Client Setup Guide: Integration instructions
- Quickstart: Try the Lit renderer
- Component Reference: What components to support