# Pubky timestamp Strictly monotonic unix timestamp in microseconds. ## Features - Strict monotonicity - Sortable encoding - Unique Id ~ish - String representation ### Strict monotonicity Unlike calling [SystemTime::now], calling [Timestamp::now] is guaranteed to always create an increasing timestamp, never moving back in time, nor repeating the same timestamp even if you call it many timest within the same microsecond. ### Sortable encoding Always encoded as Big-endian u64, so that it can be used as sortable keys. ### String representation If you enable `base32` feature, you can also get sortable utf-8 representation of 13 characters, that are also easy to copy visually. for example `0032992ANQB5G`. If you enable `httpdate` you can format [Timestamp] as [http date format](https://www.rfc-editor.org/rfc/rfc7231#section-7.1.1.1), or parse an http date to a timestamp. ### Unique Id While it can't be used as a globally unique Id, it is unique within the same process. #### Clock Ids If you use it concurrently through different processes, each process will create a unique one-byte `clock_id`. This means that if you setup your custom [TimestampFactory], you can have up to `256` processes all generating unique timestamps. Otherwise, if you use the [DEFAULT_FACTORY], which sets the [TimestampFactory::clock_id] randomly, your chance of having unique clock ids is relative to how many processes are you running, and how often do you restart these processes.