pg_idkit

pg_idkit

pg_idkit : multi-tool for generating new/niche universally unique identifiers (ex. UUIDv6, ULID, KSUID)

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
4500
pg_idkit
pg_idkit
0.4.0
FUNC
Apache-2.0
Rust
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d--
No
Yes
No
Yes
no
no
Relationships
See Also
pgx_ulid
pg_uuidv7
pg_hashids
sequential_uuids
uuid-ossp
permuteseq
pg_cardano
pg_base58

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PIGSTY
0.4.0
18
17
16
15
14
pg_idkit-
RPM
PIGSTY
0.4.0
18
17
16
15
14
pg_idkit_$v-
DEB
PIGSTY
0.4.0
18
17
16
15
14
postgresql-$v-pg-idkit-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
el8.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
el9.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
el9.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
el10.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
el10.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
d12.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
d12.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
d13.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
d13.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
u22.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
u22.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
u24.x86_64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
u24.aarch64
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PIGSTY 0.4.0
PackageVersionOSORGSIZEFile URL
pg_idkit_180.4.0el8.x86_64pigsty459.4 KiBpg_idkit_18-0.4.0-1PIGSTY.el8.x86_64.rpm
pg_idkit_180.4.0el8.aarch64pigsty355.0 KiBpg_idkit_18-0.4.0-1PIGSTY.el8.aarch64.rpm
pg_idkit_180.4.0el9.x86_64pigsty475.0 KiBpg_idkit_18-0.4.0-1PIGSTY.el9.x86_64.rpm
pg_idkit_180.4.0el9.aarch64pigsty377.4 KiBpg_idkit_18-0.4.0-1PIGSTY.el9.aarch64.rpm
pg_idkit_180.4.0el10.x86_64pigsty474.5 KiBpg_idkit_18-0.4.0-1PIGSTY.el10.x86_64.rpm
pg_idkit_180.4.0el10.aarch64pigsty376.8 KiBpg_idkit_18-0.4.0-1PIGSTY.el10.aarch64.rpm
postgresql-18-pg-idkit0.4.0d12.x86_64pigsty385.9 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-idkit0.4.0d12.aarch64pigsty285.4 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-idkit0.4.0d13.x86_64pigsty386.1 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-idkit0.4.0d13.aarch64pigsty285.3 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-idkit0.4.0u22.x86_64pigsty428.7 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-idkit0.4.0u22.aarch64pigsty328.4 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-idkit0.4.0u24.x86_64pigsty424.2 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
postgresql-18-pg-idkit0.4.0u24.aarch64pigsty324.3 KiBpostgresql-18-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_idkit_170.4.0el8.x86_64pigsty459.7 KiBpg_idkit_17-0.4.0-1PIGSTY.el8.x86_64.rpm
pg_idkit_170.4.0el8.aarch64pigsty355.0 KiBpg_idkit_17-0.4.0-1PIGSTY.el8.aarch64.rpm
pg_idkit_170.4.0el9.x86_64pigsty474.7 KiBpg_idkit_17-0.4.0-1PIGSTY.el9.x86_64.rpm
pg_idkit_170.4.0el9.aarch64pigsty377.0 KiBpg_idkit_17-0.4.0-1PIGSTY.el9.aarch64.rpm
pg_idkit_170.4.0el10.x86_64pigsty475.2 KiBpg_idkit_17-0.4.0-1PIGSTY.el10.x86_64.rpm
pg_idkit_170.4.0el10.aarch64pigsty376.6 KiBpg_idkit_17-0.4.0-1PIGSTY.el10.aarch64.rpm
postgresql-17-pg-idkit0.4.0d12.x86_64pigsty385.6 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
postgresql-17-pg-idkit0.4.0d12.aarch64pigsty285.2 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
postgresql-17-pg-idkit0.4.0d13.x86_64pigsty386.1 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
postgresql-17-pg-idkit0.4.0d13.aarch64pigsty285.2 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
postgresql-17-pg-idkit0.4.0u22.x86_64pigsty428.1 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
postgresql-17-pg-idkit0.4.0u22.aarch64pigsty328.2 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
postgresql-17-pg-idkit0.4.0u24.x86_64pigsty423.7 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
postgresql-17-pg-idkit0.4.0u24.aarch64pigsty324.0 KiBpostgresql-17-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_idkit_160.4.0el8.x86_64pigsty459.2 KiBpg_idkit_16-0.4.0-1PIGSTY.el8.x86_64.rpm
pg_idkit_160.4.0el8.aarch64pigsty355.5 KiBpg_idkit_16-0.4.0-1PIGSTY.el8.aarch64.rpm
pg_idkit_160.4.0el9.x86_64pigsty474.8 KiBpg_idkit_16-0.4.0-1PIGSTY.el9.x86_64.rpm
pg_idkit_160.4.0el9.aarch64pigsty377.2 KiBpg_idkit_16-0.4.0-1PIGSTY.el9.aarch64.rpm
pg_idkit_160.4.0el10.x86_64pigsty474.7 KiBpg_idkit_16-0.4.0-1PIGSTY.el10.x86_64.rpm
pg_idkit_160.4.0el10.aarch64pigsty376.6 KiBpg_idkit_16-0.4.0-1PIGSTY.el10.aarch64.rpm
postgresql-16-pg-idkit0.4.0d12.x86_64pigsty385.6 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
postgresql-16-pg-idkit0.4.0d12.aarch64pigsty285.0 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
postgresql-16-pg-idkit0.4.0d13.x86_64pigsty386.1 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
postgresql-16-pg-idkit0.4.0d13.aarch64pigsty285.3 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
postgresql-16-pg-idkit0.4.0u22.x86_64pigsty428.6 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
postgresql-16-pg-idkit0.4.0u22.aarch64pigsty328.1 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
postgresql-16-pg-idkit0.4.0u24.x86_64pigsty424.3 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
postgresql-16-pg-idkit0.4.0u24.aarch64pigsty323.6 KiBpostgresql-16-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_idkit_150.4.0el8.x86_64pigsty459.2 KiBpg_idkit_15-0.4.0-1PIGSTY.el8.x86_64.rpm
pg_idkit_150.4.0el8.aarch64pigsty355.2 KiBpg_idkit_15-0.4.0-1PIGSTY.el8.aarch64.rpm
pg_idkit_150.4.0el9.x86_64pigsty474.4 KiBpg_idkit_15-0.4.0-1PIGSTY.el9.x86_64.rpm
pg_idkit_150.4.0el9.aarch64pigsty377.1 KiBpg_idkit_15-0.4.0-1PIGSTY.el9.aarch64.rpm
pg_idkit_150.4.0el10.x86_64pigsty475.2 KiBpg_idkit_15-0.4.0-1PIGSTY.el10.x86_64.rpm
pg_idkit_150.4.0el10.aarch64pigsty376.7 KiBpg_idkit_15-0.4.0-1PIGSTY.el10.aarch64.rpm
postgresql-15-pg-idkit0.4.0d12.x86_64pigsty385.4 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
postgresql-15-pg-idkit0.4.0d12.aarch64pigsty285.1 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
postgresql-15-pg-idkit0.4.0d13.x86_64pigsty386.0 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
postgresql-15-pg-idkit0.4.0d13.aarch64pigsty285.3 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
postgresql-15-pg-idkit0.4.0u22.x86_64pigsty428.6 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
postgresql-15-pg-idkit0.4.0u22.aarch64pigsty328.5 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
postgresql-15-pg-idkit0.4.0u24.x86_64pigsty424.3 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
postgresql-15-pg-idkit0.4.0u24.aarch64pigsty324.1 KiBpostgresql-15-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pg_idkit_140.4.0el8.x86_64pigsty458.8 KiBpg_idkit_14-0.4.0-1PIGSTY.el8.x86_64.rpm
pg_idkit_140.4.0el8.aarch64pigsty355.5 KiBpg_idkit_14-0.4.0-1PIGSTY.el8.aarch64.rpm
pg_idkit_140.4.0el9.x86_64pigsty474.5 KiBpg_idkit_14-0.4.0-1PIGSTY.el9.x86_64.rpm
pg_idkit_140.4.0el9.aarch64pigsty377.1 KiBpg_idkit_14-0.4.0-1PIGSTY.el9.aarch64.rpm
pg_idkit_140.4.0el10.x86_64pigsty474.8 KiBpg_idkit_14-0.4.0-1PIGSTY.el10.x86_64.rpm
pg_idkit_140.4.0el10.aarch64pigsty376.8 KiBpg_idkit_14-0.4.0-1PIGSTY.el10.aarch64.rpm
postgresql-14-pg-idkit0.4.0d12.x86_64pigsty385.6 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
postgresql-14-pg-idkit0.4.0d12.aarch64pigsty285.2 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
postgresql-14-pg-idkit0.4.0d13.x86_64pigsty385.7 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
postgresql-14-pg-idkit0.4.0d13.aarch64pigsty285.3 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
postgresql-14-pg-idkit0.4.0u22.x86_64pigsty428.9 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
postgresql-14-pg-idkit0.4.0u22.aarch64pigsty328.4 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
postgresql-14-pg-idkit0.4.0u24.x86_64pigsty424.0 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
postgresql-14-pg-idkit0.4.0u24.aarch64pigsty324.1 KiBpostgresql-14-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb

Source

pig build pkg pg_idkit;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_idkit;		# install via package name, for the active PG version

pig install pg_idkit -v 18;   # install for PG 18
pig install pg_idkit -v 17;   # install for PG 17
pig install pg_idkit -v 16;   # install for PG 16
pig install pg_idkit -v 15;   # install for PG 15
pig install pg_idkit -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION pg_idkit;

Usage

pg_idkit: multi-tool for generating new/niche universally unique identifiers

CREATE EXTENSION pg_idkit;
SELECT idkit_uuidv7_generate();

Available Functions

MethodologyFunctionDescription
UUID v6idkit_uuidv6_generate()UUID v6 (RFC 4122)
idkit_uuidv6_generate_uuid()UUID v6 as native UUID type
idkit_uuidv6_extract_timestamptz(TEXT)Extract timestamp from UUID v6
UUID v7idkit_uuidv7_generate()UUID v7 (RFC 4122)
idkit_uuidv7_generate_uuid()UUID v7 as native UUID type
idkit_uuidv7_extract_timestamptz(TEXT)Extract timestamp from UUID v7
NanoIDidkit_nanoid_generate()NanoID
idkit_nanoid_custom_generate_text()NanoID with custom length and alphabet
KSUIDidkit_ksuid_generate()K-Sortable UID
idkit_ksuid_extract_timestamptz(TEXT)Extract timestamp from KSUID
idkit_ksuidms_generate()KSUID with millisecond precision
idkit_ksuidms_extract_timestamptz(TEXT)Extract timestamp from KSUID-ms
ULIDidkit_ulid_generate()Universally Unique Lexicographically Sortable ID
idkit_ulid_extract_timestamptz(TEXT)Extract timestamp from ULID
Timeflakeidkit_timeflake_generate()Snowflake + Instagram ID + Firebase PushID
idkit_timeflake_extract_timestamptz(TEXT)Extract timestamp from Timeflake
PushIDidkit_pushid_generate()Google Firebase PushID
XIDidkit_xid_generate()XID
idkit_xid_extract_timestamptz(TEXT)Extract timestamp from XID
CUIDidkit_cuid_generate()CUID (deprecated)
idkit_cuid_extract_timestamptz(TEXT)Extract timestamp from CUID
CUID2idkit_cuid2_generate()CUID2
idkit_cuid2_generate_with_len(length)CUID2 with custom length
TypeIDidkit_typeid_generate(TEXT)TypeID with prefix and UUIDv7
idkit_typeid_generate_text(TEXT)TypeID as text
idkit_typeid_from_uuid_v7(TEXT, TEXT)TypeID from a given UUID v7
idkit_typeid_extract_timestamptz(TEXT)Extract timestamp from TypeID

Examples

-- Generate different ID types
SELECT idkit_uuidv7_generate();           -- 018c106f-9304-79bb-b5be-4483b92b036c
SELECT idkit_nanoid_generate();            -- A8jFA0r3NC6FdalR4LEJ0
SELECT idkit_ksuid_generate();             -- 2HMQIBkTJmEN11JI7tvSTMwfYI3
SELECT idkit_ulid_generate();              -- 01HPYV2X17GM5SQP22M3DVFZY3
SELECT idkit_cuid2_generate();             -- clrjx3bwh0000fj3x4c2y1z0s

-- Extract timestamp
SELECT idkit_uuidv7_extract_timestamptz('018c106f-9304-79bb-b5be-4483b92b036c');
Last updated on