Documentation

rfd

version Documentation dependency status

WIP native file dialogs for Windows, Linux (GTK), MacOS.

Example

// Sync Dialog
let files = FileDialog::new()
    .add_filter("text", &["txt", "rs"])
    .add_filter("rust", &["rs", "toml"])
    .set_directory(&"/")
    .pick_files();

// Async Dialog
let file = AsyncFileDialog::new()
    .add_filter("text", &["txt", "rs"])
    .add_filter("rust", &["rs", "toml"])
    .set_directory(&"/")
    .pick_file()
    .await;

let data = file.read().await;

State

GitHub Workflow Status

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