- Performance
- Zero cost objc interop
- No legacy platforms support
- ML friendly
- Rusty API (ObjC and C)
- API Availability checks
- Buttle tested in own apps. (StreamChamp.app for recording, Yoml to be released)
- Developer can finish critical path without deallocations.
- Zero cost selectors calls (XCode 14.3) WWDC video 3:10
- Integrated async blocks
- Zero cost Apple's C API interfaces
- Static
cf::String
andns::String
refs (ns::str!(c"hello")
)
- macOS
- iOS/iPadOS
- tvOS
- watchOS
- visionOS
Deployment targets are controlled via features macos_x_x
, ios_x_x
, tvos_x_x
, watchos_x_x
, visionos_x_x
.
If selector is not defined in deployment target it becomes unsafe. So developer
should check if object responses to that selector before call it.
Default features: macos_15_0
, ios_18_0
, tvos_18_0
, maccatalyst_18_0
, watchos_11_0
, visionos_2_0
;
- address -> addr
- argument -> arg
- attachment -> attach
- attribute -> attr
- attributted -> attr
- buffer -> buf
- command -> cmd
- count -> len
- descriptor -> desc
- description -> desc
- destination -> dst
- error -> err
- extension -> ext
- lavel -> lvl
- language -> lang
- length -> len
- mutable -> mut
- operation -> op
- options -> opts
- pointer -> ptr
- source -> src
- surface - surf
- throws -> _throws (not shortcut but indicator of possible exception)
This is personal research project. With this project I learn Apple SDK's and rust.