ryanmcgrath/cacao
Rust bindings for AppKit (macOS) and UIKit (iOS/tvOS). Experimental, but working! observed · 2026-08-28
Health v2 · maintenance only
25/100
- Activity 4
- Release rhythm 8
- Longevity 100
How is this computed?
round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10) — computed 2026-09-02. Adoption (stars, forks) is never an input.
- gap_med: n/a
- age_days: 2378
- days_rel: n/a
- days_push: 576
- n_releases_24m: 0
Adoption not part of the score
2077 stars · 82 forks observed · 2026-08-28
What it is AI-extracted, prompt v1, taxonomy v1, 2026-08-30, confidence not recorded
Cacao provides safe Rust bindings for Apple's AppKit (macOS) and UIKit (iOS/tvOS) frameworks, wrapping the Objective-C runtime in a Rust-friendly API. It lets developers build native Apple-platform applications in Rust with familiar AppDelegate-style patterns.
Use cases
- build a native macOS app in Rust
- write an iOS app using Rust instead of Swift
- create cross-platform Apple apps sharing Rust code
- wrap AppKit windows and controls from Rust
- build a tvOS application in Rust
When to choose
- you want native Apple UI toolkits from Rust rather than a web-based or game-engine UI
- you're comfortable with beta-quality software and some rough edges
- you know AppKit/UIKit concepts from Swift or Objective-C and want a familiar API
When to avoid
- you need production-grade stability and long-term support guarantees
- you need cross-platform GUI beyond Apple platforms (Windows/Linux)
- you're uncomfortable with crates that rely heavily on unsafe under the hood
Facets
library · maturity experimental
gui ui-components sdk cross-platform apple-ecosystem developer-tools rust appkit uikit cocoa-bindings native-ui tvos macos ios desktop mobile
2 sources
- readme: https://github.com/ryanmcgrath/cacao · fetched 2026-08-28 · 100f6143c5d5
- registry_crates: https://crates.io/api/v1/crates/cacao · fetched 2026-08-29 · 45eeac7ab9bb
Member repositories
| Repository | Role | Health v2 |
|---|---|---|
| ryanmcgrath/cacao | main | 25 |
For agents
markdown · JSON · MCP: product_card(name="ryanmcgrath/cacao")
Data as of 2026-08-30T08:39:29.467469+00:00 · Report a problem