Safe, idiomatic Rust bindings for Apple's macOS frameworks. One crate per framework. All the power, none of the ceremony.
The Rust crates we wished existed when we started writing macOS apps in Rust. Each crate wraps a single Apple framework with a focused, safe API — no half-baked FFI, no surprises at runtime.
If you've ever wanted to drive Apple's screen capture, on-device LLMs, computer vision, accessibility, or HID input from Rust without rolling your own bindings, you're in the right place.
screencapturekit-rs— High-performance screen, window and audio capture (ScreenCaptureKit).videotoolbox-rs— Hardware-accelerated video encode / decode (VideoToolbox).avassetwriter-rs— Mux encoded video / audio into.mp4and.mov.gst-screencapturekit— GStreamer source element backed by ScreenCaptureKit.
foundation-models-rs— Apple's on-device LLM (macOS 26+).vision-rs— OCR, object detection, face landmarks.speech-rs—SFSpeechRecognizerspeech-to-text.naturallanguage-rs— Language detection, tokenisation, named-entity recognition.soundanalysis-rs— On-device sound classification.
apple-metal-rs— Apple's Metal framework.imageio-rs— Read / write / convert PNG, JPEG, HEIC, TIFF, GIF, RAW.uti-rs— UniformTypeIdentifiers, for file-type / MIME identification.
cgevents-rs— Synthesise and intercept keyboard, mouse and scroll events globally.carbonhotkey-rs— Global keyboard shortcuts. No Accessibility permission required.iohidmanager-rs— Enumerate connected mice, keyboards, gamepads via IOKit HID.gamecontroller-rs— Gamepad enumeration and state snapshots.axuielement-rs— Drive other apps' UIs via the Accessibility API.
apple-cf-rs— Shared Core* frameworks (CoreGraphics, IOSurface, Dispatch, …).networkframework-rs— Apple'sNetwork.framework.apple-log-rs—os_log, with Console.app and thelogCLI integration.
doom-fish-examples— Cross-crate examples that wire the suite up end-to-end.
- One crate, one framework. Pull in only what you need.
- Safe by default. Lifetimes, ownership and
Send/Syncmodelled honestly. - macOS-first, honest about it. We target current macOS releases and say so up front.
Issues and PRs are welcome on any crate. If you're missing a wrapper for an Apple framework you need, open an issue — there's a decent chance we want it too.