Skip to content

Conversation

@madsmtm
Copy link

@madsmtm madsmtm commented Oct 5, 2025

Use objc2-io-kit and objc2-core-foundation instead of io-kit-sys and core-foundation.

These are part of the objc2 project which I maintain, which provides auto-generated bindings for Apple's APIs. This allows us to be much more confident that the bindings are correct, handles memory management like CFRetain/CFRelease automatically, allows us to do cool things like embedding documentation from the headers.

Note also that core-foundation has been soft-deprecated in favour of objc2-core-foundation, see servo/core-foundation-rs#729, so it makes sense to start this migration.

This builds upon #260, so that should probably be merged first. This change also requires an MSRV bump to 1.71 because these crates use extern "C-unwind", so this should probably be put in the v5.0.0 milestone IIUC, see also #231.

Assuming that the `mach2` crate is updated to support these platforms,
or we get rid of that dependency.
Required for `extern "C-unwind"`.
@eldruin eldruin added this to the 5.0.0 milestone Oct 7, 2025
Copy link
Contributor

@eldruin eldruin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this work and your work on the objc2 crates!
This sounds good to me.

FYI:
Yocto kirkstone (Rust 1.59.0) goes into EOL on April 2026.
The next supported release is Scathgap, which will have Rust 1.75.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants