You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This crate provides various platform specific tools to use by most BlockProject 3D software.
Features
assets provides access to files bundled within the application (eg: AppImage for Linux and Application bundles
for Apple systems).
dirs provides access to various system directories to place application data, logs, config, etc.
fs provides a few utilities to extend the Rust standard library around the platform file system such as managing
hidden files or getting the absolute path of a file or directory.
open provides utilities to open URLs and files using the default registered application.
Supported platforms
Currently, the following platforms are supported:
macOS.
macOS (with App sandbox).
iOS.
Linux.
Windows.
Other BSD like systems.
Support for Android is currently not planned due to drastic restrictions on file sizes and largely increased complexity
of interacting with the platform (No native C API, everything goes through JVM with some custom main function).
Support for the assets feature
Platform
Tested
Notes
macOS
Yes
Uses NSBundle API.
macOS (with app sandbox)
Yes
Uses NSBundle API.
iOS
Yes
Uses NSBundle API.
Linux
Yes
-
Windows
No
Uses GetModuleFileNameW.
Other BSD like systems
No
-
Support for the dirs feature
Platform
Tested
Notes
macOS
Yes
Uses NSFileManager API.
macOS (with app sandbox)
Yes
Uses NSFileManager API.
iOS
Yes
Uses NSFileManager API.
Linux
Yes
-
Windows
No
Uses SHGetKnownFolderPath.
Other BSD like systems
Yes
-
Support for the fs feature
Platform
Tested
Notes
macOS
Yes
Uses NSFileManager API.
macOS (with app sandbox)
Yes
Uses NSFileManager API.
iOS
Yes
Uses NSFileManager API.
Linux
Yes
-
Windows
No
-
Other BSD like systems
Yes
-
Support for the open feature
Platform
Tested
Notes
macOS
Yes
Uses NSWorkspace API.
macOS (with app sandbox)
Yes
Uses NSWorkspace API.
iOS
No
Not yet implemented.
Linux
Yes
Uses dbus and xdg-open.
Windows
Yes
Uses ShellExecuteW.
Other BSD like systems
No
Uses the same code as Linux.
Support for the env feature
No platform specific APIs are required for this feature except support for
environment variables which is usually missing from mobile platforms.
Platform
Tested
Notes
macOS
Yes
-
macOS (with app sandbox)
Yes
-
iOS
No
Not applicable
Linux
Yes
-
Windows
Yes
-
Other BSD like systems
No
-
Support for the cpu-info feature
Platform
Tested
Notes
macOS
Yes
Uses machdep.cpu.core_count and machdep.cpu.brand_string.
macOS (with app sandbox)
Yes
Same as macOS.
iOS
Yes
Same as macOS.
Linux
Yes
Uses raw_cpuid on x86_64, None on other architectures.
Windows
Yes
Uses raw_cpuid on x86_64, None on other architectures.
Other BSD like systems
Yes
Uses hw.ncpu and hw.model.
Support for the time feature
Platform
Tested
Notes
macOS
Yes
Reads and interprets the contents of /etc/localtime.