These Nano-IDs with Custom Alphabet and Size are generated with jamsocket/block-id, a Rust library for generating opaque, unique, and short string values from (unsigned) integers:
GitHub stars crates.io docs.rs dependency status GitHub forks GitHub issues Contributors Last commit
For typical alphabets see Character sets.

 
range
alphabet
w/o A-Z, i, v
344: 0..1336335 (≙ 20.3 bits)
343: 0..39303 (≙ 15.3 bits)
0123456789abcdefghjklmnopqrstuwxyz
w/o QO0, 1Ilij, 2Z, S5, UVuv
463: 0..97335 (≙ 16.6 bits)
346789abcdefghkmnopqrstwxyzABCDEFGHJKLMNPRTWXY

GitHub issue/pull request detail
It would be beneficial, not only for type="xs:ID", if the Nano-IDs (block-ids) could optionally be generated without starting with digits.

Build: Sat, 4 Jan 2025 18:16:17 +0000