Bindings to Apple frameworks in Rust
1,028
stars
4,630
commits
Rust
primary language
Sep 9, 2026
updated
See objc2 for top-level documentation, including the documentation on framework crates.
Also check out block2 and dispatch2.
Always feel free to open an issue on GitHub if you find a problem or have any questions.
If you prefer to have a more synchronous and less "formal" discussion, there is a Matrix workspace, feel free to ask any questions in the "Users" room.
Also see CONTRIBUTING.md if you would like to help out.
The licensing of the project is a bit complicated, see
LICENSE.md for details.
This repository is a merge of the following projects, see reasoning for the fork here:
objc, renamed to objc2.objc-encode, renamed to objc2-encode.objc_exception, moved to objc2::exception.objc_id, moved to objc2::rc.objc-foundation, renamed to objc2-foundation.block, renamed to block2.These were created almost solely by @SSheldon, so a huge thanks for their fantastic work on these crates!
Additionally, the dispatch2 crate originally lived here.
This project also draws inspiration from:
apple-syscacaocore-foundation-rs projectfruitymetalobjrsobjr and familyrust-maciosuikit-sys and @simlay's Objective-C work on bindgencidreapple-media projectdispatchapple-rsFinally, this is by far not the only project that ever tried to interoperate with Objective-C; other languages have done so as well (to varying degrees of success):
objc2 aspires to have feature-parity with (though will probably never reach). Truly beautifully designed language!objp and rubicon.objcffigendarwin, objcderelictobjc(top 30 of 61)
Rust
99.9%
Bindings to Apple frameworks in Rust
1,028
stars
4,630
commits
Rust
primary language
Sep 9, 2026
updated
See objc2 for top-level documentation, including the documentation on framework crates.
Also check out block2 and dispatch2.
Always feel free to open an issue on GitHub if you find a problem or have any questions.
If you prefer to have a more synchronous and less "formal" discussion, there is a Matrix workspace, feel free to ask any questions in the "Users" room.
Also see CONTRIBUTING.md if you would like to help out.
The licensing of the project is a bit complicated, see
LICENSE.md for details.
This repository is a merge of the following projects, see reasoning for the fork here:
objc, renamed to objc2.objc-encode, renamed to objc2-encode.objc_exception, moved to objc2::exception.objc_id, moved to objc2::rc.objc-foundation, renamed to objc2-foundation.block, renamed to block2.These were created almost solely by @SSheldon, so a huge thanks for their fantastic work on these crates!
Additionally, the dispatch2 crate originally lived here.
This project also draws inspiration from:
apple-syscacaocore-foundation-rs projectfruitymetalobjrsobjr and familyrust-maciosuikit-sys and @simlay's Objective-C work on bindgencidreapple-media projectdispatchapple-rsFinally, this is by far not the only project that ever tried to interoperate with Objective-C; other languages have done so as well (to varying degrees of success):
objc2 aspires to have feature-parity with (though will probably never reach). Truly beautifully designed language!objp and rubicon.objcffigendarwin, objcderelictobjc(top 30 of 61)
Rust
99.9%