百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
C

cacao

> 编程语言
开源

用于 AppKit (macOS) 和 UIKit (iOS/tvOS) 的 Rust 绑定。实验性,但已运行!

2.1K stars0 点赞1 次浏览
访问官网GitHub

工具介绍

用于 AppKit (macOS) 和 UIKit (iOS/tvOS) 的 Rust 绑定。实验性,但已运行!

Cacao 这个库为 macOS 上的 AppKit (测试质量, 可使用) 和 iOS / tvOS 上的 UIKit (测试质量, 请参阅仓库) 提供了安全的 Rust 绑定。它尝试以一种方式来实现此功能,如果您之前对框架进行过编程(使用 Swift 或 Objective-C),将会感到熟悉。由于 Rust 中的所有权模型,这很棘手,但通过一些创造性的编码和假设,我们可以取得很大的进展。

这个库在 crates.io 上存在,部分是为了让项目得到更广泛的使用,从而为开发提供信息。不过,这个库目前还处于早期阶段,可能存在 bug,您对其的使用须自行承担风险。不过,如果您遵循相关规则(有关内存/所有权),它已经适用于一些应用程序了。核心仓库提供了大量示例,可帮助您快速入门。

重要提示

如果您从 0.2 迁移到 0.3,则应在 Cargo.toml 中选择 appkit 或 uikit 作为特性。此更改是为了支持不仅仅是 macOS/iOS/tvOS 的平台(例如 gnustep、airyx)。其中一个特性是必需的,以便正常工作;为了方便开发,默认使用 appkit。

请注意,此 crate 依赖 Objective-C 运行时。与运行时进行接口 需要 不安全的代码块;此 crate 会为您处理这些不安全的交互,并提供一个安全的包装器,但使用此 crate 表示您理解 unsafe 的使用是必需的,并且会在封装的控件中广泛使用。这 并不 意味着您无法评估、审查或质疑不安全的使用 - 只需了解它正在发生,而且在很大程度上不会消失。与不安全的存在本身相关的问题将会在不作评论的情况下关闭。

如果您希望在本地机器上构建此文档,由于特性标志与 cargo doc 相关的方式,您需要以下内容:

RUSTDOCFLAGS="--cfg docsrs" cargo +nightly doc --all-features --open

Hello World

rust
使用 cacao::appkit::{App, AppDelegate};
使用 cacao::appkit::window::Window;
#[derive(Default)]
struct BasicApp {
窗口: 窗口
}
class AppDelegate for BasicApp {
fn did_finish_launching(&self) {
self.window.set_minimum_content_size(400., 400.);
self.window.set_title("Hello")

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Rustappkitcocoaguiios

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言