core_graphics_min 0.1.0

A reimplementation of a few CoreGraphics types in Rust.
Documentation
  • Coverage
  • 94.12%
    16 out of 17 items documented0 out of 6 items with examples
  • Size
  • Source code size: 5.83 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 1.97 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 11s Average build duration of successful builds.
  • all releases: 11s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • rizerco/core_graphics_min
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • rizerco

About

A reimplementation of a few CoreGraphics types in Rust. Rather than generated bindings, it uses a few small structs to provide compatible implementations when dealing with Objective-C APIs.

Motivation

If you try to submit an app to the iOS App Store that contains the servo core-graphics crate, it will be rejected with the following error:

ITMS-90338: Non-public API usage - The app references non-public symbols in Frameworks/framework_name.framework/framework_name: _CGContextSetFontSmoothingStyle. If method names in your source code match the private Apple APIs listed above, altering your method names will help prevent this app from being flagged in future submissions. In addition, note that one or more of the above APIs may be located in a static library that was included with your app. If so, they must be removed. For further information, visit the Technical Support Information at http://developer.apple.com/support/technical/

Hopefully this will get fixed, but often we’re only importing this large dependency so we can use a CGRect, in which case it makes sense to instead use a much smaller dependency. That’s what this crate is for.