#跨平台 #IO #设备 #GUI #系统接口 #平台无关

cala

在Rust中制作便携式应用程序和视频游戏!

13个版本 (破坏性更新)

0.9.0 2021年1月5日
0.8.0 2020年7月14日
0.7.0 2019年11月4日
0.4.0 2019年7月7日
0.0.1 2018年6月22日

#374游戏开发

每月 35次下载

Apache-2.0 OR MIT OR BSL-1.0

72KB
978

Cala

在Rust中制作便携式应用程序和视频游戏!

docs.rs crates.io Zulip Chat

关于 | 源代码 | 变更日志 | 教程 | 博客

你是否对标准库中仅有的系统接口是文件系统感到沮丧?这个包就是为你准备的!这个包提供了对窗口、音频、无障碍、输入和视频的稳健抽象。然而,这个包不打算支持多媒体格式解析 - 那是作为一个独立的包开发的:Caved

Cala旨在成为一个“氧化重新实现”的库,包括Flutter/GTKSDL/其他SDL项目,所有这些都包含在一个库中!Flutter主要用于移动应用程序,而GTK仅用于桌面应用程序,但如果你想要为两者开发同一应用程序怎么办?那么你就使用这个包(许多功能仍然是WIP)!Cala还针对网络和裸机系统。注意,即使你不试图使你的应用程序/视频游戏极具可移植性,你仍然可以使用这个包!

您可能会问:“应用和视频游戏不应该使用独立的库吗;为什么它们会被合并?”它们通常需要做同样的事情,一些桌面应用程序依赖于SDL,例如 VLC,而一些视频游戏依赖于GTK,例如 Veloren(至少在Linux上构建时如此)。显然存在共同的兴趣;因此,它们应该合并。话虽如此,Cala极其模块化,除非您启用某些功能,否则不会包含任何模块。模块的名称与功能完全相同,因此您可以通过启用 camera 功能来使用 camera 模块。

命名

cala这个名称来源于一种名为 calafate锈病 的真菌。

功能支持

每个系统接口都可以通过一个功能来启用。功能的名称与API所在的模块名称相匹配。只需将其添加到您的 Cargo.toml 中。

[dependencies.cala]
version = "0.9"
features = ["log", "speaker"]

以下是一个列表,列出了所有目标平台及其支持的功能。

  • ✓:支持
  • —:未计划/可能
  • ?:未测试
功能 Linux MacOS Windows Web Android
bluetooth
camera
client
database
graphics 9 8
haptic
info
input 7 6
log
microphone 5 4 ?
port
random ?
server
speaker 4 ?
task
timer
usb
when
window 9

模块文档可能包含简单的教程。更深入的教程可以在 这里 找到。

尚未尝试支持但计划支持

  • iOS
  • Fuchsia
  • Redox
  • Nintendo Switch
  • XBox
  • PlayStation
  • BSD变种
  • 不在列表上但您将提交pull请求以添加它们的其他内容

许可证

许可如下

任选其一。

贡献

除非您明确表示,否则根据Apache-2.0许可证中定义的,您有意提交以包含在工作中的任何贡献,都将双许可,如上所述,没有任何额外的条款或条件。

欢迎贡献者(感谢您的兴趣!),无论是错误报告、错误修复、功能请求、功能实现还是其他任何事情。不要害羞地参与其中。我总是抽出时间来修复错误,因此通常在报告后的几天内就会有一个库的修补版本。功能请求可能不会那么快完成。如果您有任何问题、设计批评或希望我根据您的技术水平为您找到一些可以工作的东西,您可以通过电子邮件[email protected]联系我。否则,这里有一个链接到GitHub上的问题。在贡献之前,请查看贡献指南,以及始终遵守行为准则

依赖关系

~0–8.5MB
~48K SLoC