12 个版本
1.0.0-rc.4.0.0 | 2024年7月24日 |
---|---|
1.0.0-rc.3.0.3 | 2024年6月19日 |
1.0.0-rc.1.2.2 | 2023年8月9日 |
1.0.0-alpha-3 | 2023年1月25日 |
在 操作系统 中排名第 100
每月下载量 243
130KB
1.5K SLoC
bp3d-os
BlockProject 3D 的操作系统工具。
此crate提供各种平台特定工具,以便大多数BlockProject 3D软件使用。
功能
- assets 提供访问应用程序内部捆绑的文件(例如:Linux的AppImage和Apple系统的应用程序捆绑包)。
- dirs 提供访问各种系统目录以放置应用程序数据、日志、配置等。
- fs 提供一些工具来扩展Rust标准库,围绕平台文件系统,例如管理隐藏文件或获取文件或目录的绝对路径。
- open 提供使用默认注册的应用程序打开URL和文件的实用工具。
支持的平台
目前支持以下平台
- macOS。
- macOS(带有App沙盒)。
- iOS。
- Linux。
- Windows。
- 其他类似BSD的系统。
由于对文件大小有严格的限制,并且与平台的交互大幅增加的复杂性(没有本地C API,所有内容都通过JVM和一些自定义主函数进行),因此目前不计划支持Android。
assets 功能的支持
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | 使用NSBundle API。 |
macOS(带有app沙盒) | 是 | 使用NSBundle API。 |
iOS | 是 | 使用NSBundle API。 |
Linux | 是 | - |
Windows | 否 | 使用 GetModuleFileNameW。 |
其他类似BSD的系统 | 否 | - |
dirs 功能的支持
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | 使用 NSFileManager API。 |
macOS(带有app沙盒) | 是 | 使用 NSFileManager API。 |
iOS | 是 | 使用 NSFileManager API。 |
Linux | 是 | - |
Windows | 否 | 使用 SHGetKnownFolderPath。 |
其他类似BSD的系统 | 是 | - |
fs 功能的支持
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | 使用 NSFileManager API。 |
macOS(带有app沙盒) | 是 | 使用 NSFileManager API。 |
iOS | 是 | 使用 NSFileManager API。 |
Linux | 是 | - |
Windows | 否 | - |
其他类似BSD的系统 | 是 | - |
open 功能的支持
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | 使用 NSWorkspace API。 |
macOS(带有app沙盒) | 是 | 使用 NSWorkspace API。 |
iOS | 否 | 尚未实现。 |
Linux | 是 | 使用 dbus 和 xdg-open。 |
Windows | 是 | 使用 ShellExecuteW。 |
其他类似BSD的系统 | 否 | 使用与Linux相同的代码。 |
env 功能的支持
此功能不需要特定的平台API,只需支持环境变量即可,而环境变量通常是移动平台所缺少的。
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | - |
macOS(带有app沙盒) | 是 | - |
iOS | 否 | 不适用 |
Linux | 是 | - |
Windows | 是 | - |
其他类似BSD的系统 | 否 | - |
cpu-info 功能的支持
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | 使用 machdep.cpu.core_count 和 machdep.cpu.brand_string 。 |
macOS(带有app沙盒) | 是 | 与macOS相同。 |
iOS | 是 | 与macOS相同。 |
Linux | 是 | 在x86_64上使用 raw_cpuid ,在其他架构上为None。 |
Windows | 是 | 在x86_64上使用 raw_cpuid ,在其他架构上为None。 |
其他类似BSD的系统 | 是 | 使用 hw.ncpu 和 hw.model 。 |
支持 时间 功能
平台 | 已测试 | 备注 |
---|---|---|
macOS | 是 | 读取并解释 /etc/localtime 的内容。 |
macOS(带有app沙盒) | 否 | 与macOS相同。 |
iOS | 是 | 与macOS相同。 |
Linux | 否 | 与macOS相同。 |
Windows | 是 | 使用 GetTimeZoneInformation 。 |
其他类似BSD的系统 | 否 | 与macOS相同。 |
依赖关系
~0-16MB
~154K SLoC