Safe, idiomatic Rust bindings for macOS system 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 system 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.commoncrypto-rs— SHA-256 and SHA-1 through CommonCrypto on macOS.apple-log-rs—os_log, with Console.app and thelogCLI integration.
These public repositories provide WebRTC protocols and an Opus codec. Some crates are not available on crates.io.
rtc-rs— A WebRTC connection that combines ICE, DTLS, SRTP and RTP.ice-rs— ICE candidate collection and connection checks.sdp-rs— Parse and build SDP session descriptions.rtp-rs— RTP and RTCP packets, feedback messages and media payloads.stun-rs— STUN messages and attributes.turn-rs— TURN allocations, permissions and channel bindings.dtls-rs— DTLS 1.2 handshakes and secure datagrams.srtp-rs— SRTP and SRTCP packet protection.opus-rs— Encode and decode audio with Opus.
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. - Current releases, 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.