rfd
Rusty file dialogs for Windows, Linux (GTK), MacOS And WASM32.
Why RFD?
- It uses 100% native API on all platforms, it does not spawn any processes in the background.
- It supports async/await syntax
- And if one day you decide to port your program to browser, WASM support is there for you!
Example
// Sync Dialog
let files = new
.add_filter
.add_filter
.set_directory
.pick_files;
// Async Dialog
let file = new
.add_filter
.add_filter
.set_directory
.pick_file
.await;
let data = file.read.await;
State
API Stability |
---|
🚧 |
Feature | Linux | Windows | MacOS [1] | Wasm32 |
---|---|---|---|---|
SingleFile | ✔ | ✔ | ✔ | ✔ |
MultipleFile | ✔ | ✔ | ✔ | ✔ |
PickFolder | ✔ | ✔ | ✔ | ✖ |
SaveFile | ✔ | ✔ | ✔ | ✖ |
Filters | ✔ | ✔ | ✔ | ✔ |
StartingPath | ✔ | ✔ | ✔ | ✖ |
Async | ✔ | ✔ | ✔ | ✔ |
[1] Sync dialog freezes when used with winit (same way as nfd
) #1779
rfd-extras
AKA features that will be either in a separate rfd-extras
crate, or behind a feature flag
Feature | Linux | Windows | MacOS |
---|---|---|---|
MessageDialog | |||
PromptDialog | |||
ColorPicker |