12 个版本

1.0.0-rc.4.0.02024年7月24日
1.0.0-rc.3.0.32024年6月19日
1.0.0-rc.1.2.22023年8月9日
1.0.0-alpha-32023年1月25日

操作系统 中排名第 100

Download history 330/week @ 2024-06-14 50/week @ 2024-06-21 1/week @ 2024-06-28 29/week @ 2024-07-05 20/week @ 2024-07-12 142/week @ 2024-07-19 70/week @ 2024-07-26 10/week @ 2024-08-02

每月下载量 243

BSD-3-Clause

130KB
1.5K SLoC

logo

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_countmachdep.cpu.brand_string
macOS(带有app沙盒) 与macOS相同。
iOS 与macOS相同。
Linux 在x86_64上使用 raw_cpuid,在其他架构上为None。
Windows 在x86_64上使用 raw_cpuid,在其他架构上为None。
其他类似BSD的系统 使用 hw.ncpuhw.model

支持 时间 功能

平台 已测试 备注
macOS 读取并解释 /etc/localtime 的内容。
macOS(带有app沙盒) 与macOS相同。
iOS 与macOS相同。
Linux 与macOS相同。
Windows 使用 GetTimeZoneInformation
其他类似BSD的系统 与macOS相同。

依赖关系

~0-16MB
~154K SLoC