friendly_id

Crates.iofriendly_id
lib.rsfriendly_id
version0.3.0
sourcesrc
created_at2020-09-05 21:46:41.702714
updated_at2020-09-06 13:50:03.26122
descriptionThe FriendlyID library converts a given UUID to a URL-friendly ID which is based on Base62
homepagehttps://github.com/Devskiller/friendly-id
repositoryhttps://github.com/mariuszs/friendly_id
max_upload_size
id285227
size8,637
Mariusz Smykuła (mariuszs)

documentation

README

Version Docs

FriendlyID Rust library

What is the FriendlyID library?

The FriendlyID library converts a given UUID (with 36 characters) to a URL-friendly ID (a "FriendlyID") which is based on Base62 (with a maximum of 22 characters), as in the example below:

UUID                                        Friendly ID

c3587ec5-0976-497f-8374-61e0c2ea3da5   ->   5wbwf6yUxVBcr48AMbz9cb
|                                           |                              
36 characters                               22 characters or less

In addition, this library allows to:

  • convert from a FriendlyID back to the original UUID; and
  • create a new, random FriendlyID

Why use a FriendlyID?

Universal Unique IDs (UUIDs) provide a non-sequential and unique identifier that can be generated separately from the source database. As a result, it is not possible to guess either the previous or next identifier. That's great, but, to achieve this level of security, a UUID is long (128 bits long) and looks ugly (36 alphanumeric characters including four hyphens which are added to make it easier to read the UUID), as in this example: 123e4567-e89b-12d3-a456-426655440000.

Such a format is:

  • difficult to read (especially if it is part of a URL)

  • difficult to remember

  • cannot be copied with just two mouse-clicks (you have to select manually the start and end positions)

  • can easily become broken across lines when it is copied, pasted, edited, or sent.

Our FriendlyID Java library solves these problems by converting a given UUID using Base62 with alphanumeric characters in the range [0-9A-Za-z] into a FriendlyId which consists of a maximum of 22 characters (but in fact often contains fewer characters).

Supported languages

Curently FriendlyID supports also Java and Swift

Tools

There is available CLI converters

Commit count: 22

cargo fmt