ulid

Generate Universally Unique Lexicographically Sortable Identifiers

Universally unique identifiers ('UUIDs') can be suboptimal for many uses-cases because they aren't the most character efficient way of encoding 128 bits of randomness; v1/v2 versions are impractical in many environments, as they require access to a unique, stable MAC address; v3/v5 versions require a unique seed and produce randomly distributed IDs, which can cause fragmentation in many data structures; v4 provides no other information than randomness which can cause fragmentation in many data structures. 'ULIDs' (<https://github.com/ulid/spec>) have 128-bit compatibility with 'UUID', 1.21e+24 unique 'ULIDs' per millisecond, are lexicographically sortable, canonically encoded as a 26 character string, as opposed to the 36 character 'UUID', use Crockford's 'base32' for better efficiency and readability (5 bits per character), are case insensitive, have no special characters (i.e. are 'URL' safe) and have a onotonic sort order (correctly detects and handles the same millisecond).

Total

0

Last month

0

Last week

0

Average per day

0

Daily downloads

Total downloads

Description file content

Package
ulid
Type
Package
Title
Generate Universally Unique Lexicographically Sortable Identifiers
Version
0.3.0
Date
2019-07-04
Maintainer
Bob Rudis
Description
Universally unique identifiers ('UUIDs') can be suboptimal for many uses-cases because they aren't the most character efficient way of encoding 128 bits of randomness; v1/v2 versions are impractical in many environments, as they require access to a unique, stable MAC address; v3/v5 versions require a unique seed and produce randomly distributed IDs, which can cause fragmentation in many data structures; v4 provides no other information than randomness which can cause fragmentation in many data structures. 'ULIDs' () have 128-bit compatibility with 'UUID', 1.21e+24 unique 'ULIDs' per millisecond, are lexicographically sortable, canonically encoded as a 26 character string, as opposed to the 36 character 'UUID', use Crockford's 'base32' for better efficiency and readability (5 bits per character), are case insensitive, have no special characters (i.e. are 'URL' safe) and have a onotonic sort order (correctly detects and handles the same millisecond).
URL
BugReports
https://gitlab.com/hrbrmstr/ulid/issues
SystemRequirements
C++11
NeedsCompilation
yes
Encoding
UTF-8
License
MIT + file LICENSE
Suggests
covr, tinytest, knitr, rmarkdown
Depends
R (>= 3.2.0)
Imports
Rcpp
RoxygenNote
6.1.1
LinkingTo
Rcpp
VignetteBuilder
knitr
Packaged
2019-07-05 19:49:06 UTC; hrbrmstr
Author
Bob Rudis [aut, cre] (), suyash [aut] (ULID C++ Port )
Repository
CRAN
Date/Publication
2019-07-09 16:00:02 UTC

install.packages('ulid')

0.3.0

8 days ago

https://gitlab.com/hrbrmstr/ulid

Bob Rudis

MIT + file LICENSE

Depends on

R (>= 3.2.0)

Imports

Rcpp

Suggests

covr, tinytest, knitr, rmarkdown

Discussions