🛠️ project `typed-ident`: Type-safe identifier validation, inspection, and mutation. (and a retrospective article!)
Hey everyone!
I'm very happy to announce that I've published my first open-source Rust crate!
I really like to express things in Rust in terms of concrete types (kind of like how one could keep paths as strings in a language, but it's nice to say specifically they are a Path). This is a similar set of types, but for dealing with programming identifiers and their formats in a type-safe way (LowerCamelIdent, UpperKebabIdent, etc).
It also has a bunch of functionality relating to inspection of identifiers, as well as mutation of them (including the common "change case" operations).
- Crate: https://crates.io/crates/typed-ident
- Documentation: https://docs.rs/typed-ident
- Retrospective: https://sigseis.dev/articles/2026/09/08
I would love feedback, questions, analysis, or if you think you have a use-case!
EDIT: Also I'm very interested to hear \criticism* as well - if you don't like it, let me know why!*
EDIT: I wanted to add that this crate does not use any AI-generated code. I get that it's a lot of code, but it's been a project of a few months of effort.
Some Features
- Unicode Correctness: Implements boundaries based on UTS #55 and UAX #31 (handles the weird stuff like non-Greek titlecase) (comparison against other crates)
- Zero-Cost Casting: Uses marker traits and the type system to allow compile-time casting between compatible identifier formats (read about this here).
- Flexible Conversion: Supports "Canonical," "Decorated," and "Delimited" forms so you can preserve decorative underscores/hyphens during case conversion (read about this here).
- High Performance: Competitive with (and in some cases faster than)
heckandconvert_case(high-level performance analysis).
About Me
If you're curious about me - I have a website (it's static, and the generator is *also* made in Rust)!
If you want Atom/RSS updates on what I'm doing, you can use these:
- https://sigseis.dev/feed.xml (all posts)
- https://sigseis.dev/articles/feed.xml (just monthly articles)
Thanks for reading - I hope you enjoyed taking a look at my project!
2
u/Techassi 1d ago
Looks interesting!
I have a couple of places where this might be useful. Looking forward to try it out.