A minimal, dependency-free crate for getting the user's config, data, and cache directories.
use dirs_lite::{config_dir, data_dir, cache_dir};
fn main() {
let config = config_dir().expect("config dir");
println!("{}", config.display());
// Linux: /home/alice/.config
// macOS: /Users/Alice/Library/Application Support
// /Users/Alice/.config (with `favor-xdg-style` feature)
// Windows: C:\Users\Alice\AppData\Roaming
let data = data_dir().expect("data dir");
println!("{}", data.display());
// Linux: /home/alice/.local/share
// macOS: /Users/Alice/Library/Application Support
// /Users/Alice/.local/share (with `favor-xdg-style` feature)
// Windows: C:\Users\Alice\AppData\Local
let cache = cache_dir().expect("cache dir");
println!("{}", cache.display());
// Linux: /home/alice/.cache
// macOS: /Users/Alice/Library/Caches
// /Users/Alice/.cache (with `favor-xdg-style` feature)
// Windows: C:\Users\Alice\AppData\Local
}| Platform | Path |
|---|---|
| Linux | $XDG_CONFIG_HOME or $HOME/.config |
| macOS | $HOME/Library/Application Support |
| Windows | %APPDATA% |
| Platform | Path |
|---|---|
| Linux | $XDG_DATA_HOME or $HOME/.local/share |
| macOS | $HOME/Library/Application Support |
| Windows | %LOCALAPPDATA% |
| Platform | Path |
|---|---|
| Linux | $XDG_CACHE_HOME or $HOME/.cache |
| macOS | $HOME/Library/Caches |
| Windows | %LOCALAPPDATA% |
favor-xdg-style- On macOS, returns XDG-style paths ($HOME/.config,$HOME/.local/share,$HOME/.cache) instead of Apple paths.
- XDG Base Directory Specification (Linux)
- Apple File System Programming Guide (macOS)
- Known Folder IDs (Windows)
Need more? Consider these crates:
dirs- More directory types (cache, data, etc.)directories- Project-specific paths with organization supportetcetera- Strategy-based (XDG, Apple, Windows)
Licensed under either of Apache License, Version 2.0 or MIT license at your option.