generate {ulid}R Documentation

Generate ULID

Description

generate() generates a new Universally Unique Lexicographically Sortable Identifier. Several aliases are available for convience and backwards-compatibility.

This function generates a new Universally Unique Lexicographically Sortable Identifier from a vector of POSIXct timestamps.

As described in the ulid specification repo, and slightly edited here, UUID use can be suboptimal for many uses-cases because:(grifted from https://github.com/ulid/spec)

UUID can be suboptimal for many uses-cases because:

Instead, an alternative is proposed in ULID:

ulid() // 01ARZ3NDEKTSV4RRFFQ69G5FAV

with the following properties:

01AN4Z07BY      79KA1307SR9X4MV3

|----------|    |----------------|
  Timestamp          Randomness
   48bits              80bits

Components

Timestamp

Randomness

Sorting

The left-most character must be sorted first, and the right-most character sorted last (lexical order). The default ASCII character set must be used. Within the same millisecond, sort order is not guaranteed.

Usage

generate(n = 1L)

unmarshal(ulids)

ts_generate(tsv)

ulid(n = 1L)

ulid_generate(n = 1L)

ULIDgenerate(n = 1L)

Arguments

n

number of id's to generate (default = 1)

ulids

character ULIDs (e.g. created with generate())

tsv

vector of POSIXct values

Details

Note that up until release 0.3.1, the implementations had limitations that resulted in second rather than millisecond resolution. This has been addressed for release 0.4.0 and is now supported as expected.

Value

A data.frame with two columns ts and rnd.

Author(s)

Bob Rudis (bob@rud.is) wrote the package based on ulid C++ library by Suyash Verma.

Dirk Eddelbuettel now maintains the package.

See Also

The ulid specification provides the reference.

Examples

ULIDgenerate()
unmarshal(generate())
ts_generate(as.POSIXct("2017-11-01 15:00:00", origin="1970-01-01"))

[Package ulid version 0.4.0 Index]