Skip to content
@doom-fish

DOOM FISH INDUSTRIES

Safe, idiomatic Rust bindings for macOS system frameworks. One crate per framework.
doom-fish

doom-fish

Safe, idiomatic Rust bindings for macOS system frameworks. One crate per framework. All the power, none of the ceremony.

doom.fish · open an issue · per@doom.fish


What is this?

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.

The suite

🎥 Capture & video

🧠 On-device ML

🎨 Graphics & media I/O

  • 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.

⌨️ Input, HID & automation

  • 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.

🧱 Foundations

WebRTC

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.

🐟 See it all together

Design principles

  • One crate, one framework. Pull in only what you need.
  • Safe by default. Lifetimes, ownership and Send / Sync modelled honestly.
  • Current releases, honest about it. We target current macOS releases and say so up front.

Contributing

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.


made with ☠️ · doom.fish

Pinned Loading

  1. landing-page landing-page Public

    Landing page for the doom fish industries corp

    GLSL 5

  2. squad.fish squad.fish Public

    Product dev collab

    Rust 13

  3. screencapturekit-rs screencapturekit-rs Public

    Safe, idiomatic Rust bindings for Apple ScreenCaptureKit — high-performance screen, window, and audio capture on macOS.

    Rust 244 47

Repositories

Showing 10 of 99 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…