fileslug
Filename-aware slug generator for Rust. Converts messy filenames into clean, shell-safe slugs while preserving extensions, dotfiles, and version numbers.
Unlike URL slug libraries (which destroy .tar.gz → tar-gz), fileslug understands filenames.
Usage
use ;
let opts = default; // kebab-case, transliterate unicode
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
// Snake case
let snake = SlugifyOptions ;
assert_eq!;
// camelCase
let camel = SlugifyOptions ;
assert_eq!;
// Keep unicode (skip transliteration)
let unicode = SlugifyOptions ;
assert_eq!;
Features
- Extension preservation —
.txt,.tar.gz,.tar.bz2etc. never modified - Dotfile awareness —
.gitignore,.envreturned as-is - Version number preservation —
1.2.3dots kept intact - Unicode transliteration — via
any_ascii(or keep-unicode to skip) - Three styles — kebab-case (default), snake_case, camelCase
- Zero-copy for dotfiles — returns
Cow::Borrowedwhen no changes needed