2 releases
Uses new Rust 2024
new 0.1.1 | May 15, 2025 |
---|---|
0.1.0 | May 15, 2025 |
#959 in Text processing
180 downloads per month
9KB
123 lines
limace
limace
is a fast and minimal slugification utility for Rust. It converts strings into clean, URL-friendly slugs using ASCII characters only. It handles Unicode characters via transliteration and supports customizable separator characters.
Features
- Transliterates Unicode to ASCII using
deunicode
- Strips punctuation and special characters
- Converts to lowercase
- Customizable separator (default is
-
) - No heap allocations beyond the result
String
Example
use limace::Slugifier;
fn main() {
let slugifier = Slugifier::default();
assert_eq!(slugifier.slugify("Hello, World!"), "hello-world");
assert_eq!(slugifier.slugify("Crème brûlée"), "creme-brulee");
let custom = Slugifier::default().with_separator('_');
assert_eq!(custom.slugify("Hello, World!"), "hello_world");
}
Usage
Add this to your Cargo.toml
:
[dependencies]
limace = "0.1"
Then use it in your code:
use limace::Slugifier;
let slug = Slugifier::default().slugify("Rust 2024: Fast & Fearless!");
assert_eq!(slug, "rust-2024-fast-fearless");
Custom separator
You can change the separator using with_separator()
:
use limace::Slugifier;
let slug = Slugifier::default()
.with_separator('_')
.slugify("Hello, World!");
assert_eq!(slug, "hello_world");
How it works
- Unicode characters are transliterated to ASCII using
deunicode_char()
. - Uppercase letters are manually lowercased.
- Alphanumeric ASCII characters are kept.
- All other characters are replaced by a separator.
- Consecutive separators are collapsed into one.
License
Licensed under MIT
Dependencies
~175KB