dispatchr

Crates.iodispatchr
lib.rsdispatchr
version1.0.0
sourcesrc
created_at2024-10-15 05:15:11.292329
updated_at2024-10-15 05:15:11.292329
descriptionDrew's Rust bindings for libdispatch, a.k.a. GCD
homepagehttps://sealedabstract.com/code/dispatchr
repositoryhttps://github.com/drewcrawford/dispatchr
max_upload_size
id1409024
size106,200
Drew Crawford (drewcrawford)

documentation

README

dispatchr

logo

Drew's Rust bindings for libdispatch, a.k.a. GCD. This is an alternative to the dispatch crate.

This crate is part of the objr expanded universe universe which provide low-level, zero-cost Rust abstractions for Apple platform features that mimic code from first-party compilers. Distinctive features of this library include:

  • Leverages blocksr technology for fast, low-overhead, static compile-time optimizations of dispatch calls.
  • Exposes a rich set of datatypes for dispatch_data, including managed, unmanaged, contiguous, and zero-copy-bridged flavors of data
  • Binds dispatch_read/write, the defacto API for nonblocking IO on macOS.
    • Notably, the rest of the Rust ecosystem uses some cross-platform API to cover macOS, like poll or kevent. These lack various features and optimizations of the preferred API.
    • In general, Apple implements the cross-platform APIs with about as much care as the developers using them to port cross-platform apps: not enough.
  • Binds QoS, which is the solution for task priority and responsive GUI apps on macOS

Status

dispatchr covers large but incomplete portions of the libdispatch API.

  • global queues, dispatch_sync
  • qos
  • popular portions of io: dispatch_read, dispatch_write, dispatch_io_create_with_path
  • data
  • semaphore
  • source (timers only)
Commit count: 49

cargo fmt