Rust bindings for native file dialogs on Linux, macOS, and Windows.
nfd-rs is a Rust library that provides bindings to nativefiledialog, enabling cross-platform file dialog functionality in Rust applications. It allows developers to open OS-native file dialogs for selecting single or multiple files, as well as save dialogs, without writing platform-specific code. The library abstracts away the differences between Linux, macOS, and Windows, offering a unified API.
Rust developers building desktop applications or CLI tools that require graphical file selection interfaces. It's particularly useful for projects needing native system integration without external GUI frameworks.
Developers choose nfd-rs for its lightweight, cross-platform approach to file dialogs, leveraging native OS components for better user experience and reduced maintenance. It simplifies file I/O interactions in Rust by providing a clean, idiomatic API backed by proven native libraries.
OS-native file dialogs on Linux, OS X and Windows
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses OS-native file pickers on Linux, macOS, and Windows, ensuring a consistent user experience as demonstrated in the README's screenshot and tested platforms like Ubuntu 14.04.
Offers a flexible builder API for configuring dialogs, shown in the code example for multiple file selection with .filter('jpg') support.
Provides a minimal interface to add file dialogs without heavy GUI dependencies, ideal for CLI tools or lightweight desktop apps, as highlighted in the value proposition.
Allows filtering by extensions like jpg in dialogs, as evidenced in the usage example, simplifying user file selection.
The README explicitly warns that 'APIs may break with newer versions,' indicating a risk for projects requiring long-term stability and maintenance.
Relies on the nativefiledialog C library, which can complicate builds with linking issues and add complexity in cross-platform or embedded environments.
Only supports basic file open and save dialogs; lacks other native dialogs like folder pickers or color choosers, which might necessitate additional libraries for full functionality.