Skip to content

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.

RendererPlatformv0.8v0.9Links
ReactWeb✅ StableCode
Lit (Web Components)Web✅ Stable✅ StableCode
AngularWeb✅ Stable✅ StableCode
Flutter (GenUI SDK)Mobile/Desktop/Web✅ Stable✅ StableDocs · Code
SwiftUIiOS/macOS🚧 Planned Q2
Jetpack ComposeAndroid🚧 Planned Q2

Check the Roadmap for more.

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.

A2UI JSON → Renderer → Native Components → Your App
  1. Receive A2UI messages from the transport
  2. Parse the JSON and validate against the schema
  3. Render using platform-native components
  4. Style according to your app’s theme

Get started integrating A2UI into your application by following the setup guide for your chosen renderer:

Want to build a renderer for your platform?

  • 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