pg_idkit
生成各式各样的唯一标识符:UUIDv6, ULID, KSUID
仓库
VADOSWARE/pg_idkit
https://github.com/VADOSWARE/pg_idkit
源码
pg_idkit-0.4.0.tar.gz
pg_idkit-0.4.0.tar.gz
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_idkit | 0.4.0 | FUNC | Apache-2.0 | Rust |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 4500 | pg_idkit | 否 | 是 | 否 | 是 | 否 | 否 | - |
| 相关扩展 | pgx_ulid pg_uuidv7 pg_hashids sequential_uuids uuid-ossp permuteseq pg_cardano pg_base58 |
|---|
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.4.0 | 1817161514 | pg_idkit | - |
| RPM | PIGSTY | 0.4.0 | 1817161514 | pg_idkit_$v | - |
| DEB | PIGSTY | 0.4.0 | 1817161514 | postgresql-$v-pg-idkit | - |
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.4.0 el8.x86_64.pg18 : pg_idkit_18 pg_idkit_18-0.4.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.4.0 el8.x86_64.pg17 : pg_idkit_17 pg_idkit_17-0.4.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.4.0 el8.x86_64.pg16 : pg_idkit_16 pg_idkit_16-0.4.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.4.0 el8.x86_64.pg15 : pg_idkit_15 pg_idkit_15-0.4.0-1PIGSTY.el8.x86_64.rpm
| PIGSTY 0.4.0 el8.x86_64.pg14 : pg_idkit_14 pg_idkit_14-0.4.0-1PIGSTY.el8.x86_64.rpm
|
| el8.aarch64 | PIGSTY 0.4.0 el8.aarch64.pg18 : pg_idkit_18 pg_idkit_18-0.4.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.4.0 el8.aarch64.pg17 : pg_idkit_17 pg_idkit_17-0.4.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.4.0 el8.aarch64.pg16 : pg_idkit_16 pg_idkit_16-0.4.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.4.0 el8.aarch64.pg15 : pg_idkit_15 pg_idkit_15-0.4.0-1PIGSTY.el8.aarch64.rpm
| PIGSTY 0.4.0 el8.aarch64.pg14 : pg_idkit_14 pg_idkit_14-0.4.0-1PIGSTY.el8.aarch64.rpm
|
| el9.x86_64 | PIGSTY 0.4.0 el9.x86_64.pg18 : pg_idkit_18 pg_idkit_18-0.4.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 0.4.0 el9.x86_64.pg17 : pg_idkit_17 pg_idkit_17-0.4.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 0.4.0 el9.x86_64.pg16 : pg_idkit_16 pg_idkit_16-0.4.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 0.4.0 el9.x86_64.pg15 : pg_idkit_15 pg_idkit_15-0.4.0-1PIGSTY.el9.x86_64.rpm
| PIGSTY 0.4.0 el9.x86_64.pg14 : pg_idkit_14 pg_idkit_14-0.4.0-1PIGSTY.el9.x86_64.rpm
|
| el9.aarch64 | PIGSTY 0.4.0 el9.aarch64.pg18 : pg_idkit_18 pg_idkit_18-0.4.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 0.4.0 el9.aarch64.pg17 : pg_idkit_17 pg_idkit_17-0.4.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 0.4.0 el9.aarch64.pg16 : pg_idkit_16 pg_idkit_16-0.4.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 0.4.0 el9.aarch64.pg15 : pg_idkit_15 pg_idkit_15-0.4.0-1PIGSTY.el9.aarch64.rpm
| PIGSTY 0.4.0 el9.aarch64.pg14 : pg_idkit_14 pg_idkit_14-0.4.0-1PIGSTY.el9.aarch64.rpm
|
| el10.x86_64 | PIGSTY 0.4.0 el10.x86_64.pg18 : pg_idkit_18 pg_idkit_18-0.4.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 0.4.0 el10.x86_64.pg17 : pg_idkit_17 pg_idkit_17-0.4.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 0.4.0 el10.x86_64.pg16 : pg_idkit_16 pg_idkit_16-0.4.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 0.4.0 el10.x86_64.pg15 : pg_idkit_15 pg_idkit_15-0.4.0-1PIGSTY.el10.x86_64.rpm
| PIGSTY 0.4.0 el10.x86_64.pg14 : pg_idkit_14 pg_idkit_14-0.4.0-1PIGSTY.el10.x86_64.rpm
|
| el10.aarch64 | PIGSTY 0.4.0 el10.aarch64.pg18 : pg_idkit_18 pg_idkit_18-0.4.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 0.4.0 el10.aarch64.pg17 : pg_idkit_17 pg_idkit_17-0.4.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 0.4.0 el10.aarch64.pg16 : pg_idkit_16 pg_idkit_16-0.4.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 0.4.0 el10.aarch64.pg15 : pg_idkit_15 pg_idkit_15-0.4.0-1PIGSTY.el10.aarch64.rpm
| PIGSTY 0.4.0 el10.aarch64.pg14 : pg_idkit_14 pg_idkit_14-0.4.0-1PIGSTY.el10.aarch64.rpm
|
| d12.x86_64 | PIGSTY 0.4.0 d12.x86_64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 0.4.0 d12.x86_64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 0.4.0 d12.x86_64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 0.4.0 d12.x86_64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
| PIGSTY 0.4.0 d12.x86_64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~bookworm_amd64.deb
|
| d12.aarch64 | PIGSTY 0.4.0 d12.aarch64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 0.4.0 d12.aarch64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 0.4.0 d12.aarch64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 0.4.0 d12.aarch64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
| PIGSTY 0.4.0 d12.aarch64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~bookworm_arm64.deb
|
| d13.x86_64 | PIGSTY 0.4.0 d13.x86_64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 0.4.0 d13.x86_64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 0.4.0 d13.x86_64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 0.4.0 d13.x86_64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
| PIGSTY 0.4.0 d13.x86_64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~trixie_amd64.deb
|
| d13.aarch64 | PIGSTY 0.4.0 d13.aarch64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 0.4.0 d13.aarch64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 0.4.0 d13.aarch64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 0.4.0 d13.aarch64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
| PIGSTY 0.4.0 d13.aarch64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~trixie_arm64.deb
|
| u22.x86_64 | PIGSTY 0.4.0 u22.x86_64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 0.4.0 u22.x86_64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 0.4.0 u22.x86_64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 0.4.0 u22.x86_64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
| PIGSTY 0.4.0 u22.x86_64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~jammy_amd64.deb
|
| u22.aarch64 | PIGSTY 0.4.0 u22.aarch64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 0.4.0 u22.aarch64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 0.4.0 u22.aarch64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 0.4.0 u22.aarch64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
| PIGSTY 0.4.0 u22.aarch64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~jammy_arm64.deb
|
| u24.x86_64 | PIGSTY 0.4.0 u24.x86_64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
| PIGSTY 0.4.0 u24.x86_64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
| PIGSTY 0.4.0 u24.x86_64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
| PIGSTY 0.4.0 u24.x86_64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
| PIGSTY 0.4.0 u24.x86_64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~noble_amd64.deb
|
| u24.aarch64 | PIGSTY 0.4.0 u24.aarch64.pg18 : postgresql-18-pg-idkit postgresql-18-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
| PIGSTY 0.4.0 u24.aarch64.pg17 : postgresql-17-pg-idkit postgresql-17-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
| PIGSTY 0.4.0 u24.aarch64.pg16 : postgresql-16-pg-idkit postgresql-16-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
| PIGSTY 0.4.0 u24.aarch64.pg15 : postgresql-15-pg-idkit postgresql-15-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
| PIGSTY 0.4.0 u24.aarch64.pg14 : postgresql-14-pg-idkit postgresql-14-pg-idkit_0.4.0-1PIGSTY~noble_arm64.deb
|
| u26.x86_64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
| u26.aarch64 | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS | PIGSTY MISS |
构建
您可以使用 pig build 命令构建 pg_idkit 扩展的 RPM / DEB 包:
pig build pkg pg_idkit # 构建 RPM / DEB 包
安装
您可以直接安装 pg_idkit 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
pig repo add pgsql -u # 添加仓库并更新缓存
使用 pig 或者是 apt/yum/dnf 安装扩展:
pig install pg_idkit; # 当前活跃 PG 版本安装
pig ext install -y pg_idkit -v 18 # PG 18
pig ext install -y pg_idkit -v 17 # PG 17
pig ext install -y pg_idkit -v 16 # PG 16
pig ext install -y pg_idkit -v 15 # PG 15
pig ext install -y pg_idkit -v 14 # PG 14
dnf install -y pg_idkit_18 # PG 18
dnf install -y pg_idkit_17 # PG 17
dnf install -y pg_idkit_16 # PG 16
dnf install -y pg_idkit_15 # PG 15
dnf install -y pg_idkit_14 # PG 14
apt install -y postgresql-18-pg-idkit # PG 18
apt install -y postgresql-17-pg-idkit # PG 17
apt install -y postgresql-16-pg-idkit # PG 16
apt install -y postgresql-15-pg-idkit # PG 15
apt install -y postgresql-14-pg-idkit # PG 14
创建扩展:
CREATE EXTENSION pg_idkit;
用法
CREATE EXTENSION pg_idkit;
SELECT idkit_uuidv7_generate();
可用函数
| 方法 | 函数 | 描述 |
|---|---|---|
| UUID v6 | idkit_uuidv6_generate() | UUID v6(RFC 4122) |
idkit_uuidv6_generate_uuid() | UUID v6,返回原生 UUID 类型 | |
idkit_uuidv6_extract_timestamptz(TEXT) | 从 UUID v6 中提取时间戳 | |
| UUID v7 | idkit_uuidv7_generate() | UUID v7(RFC 4122) |
idkit_uuidv7_generate_uuid() | UUID v7,返回原生 UUID 类型 | |
idkit_uuidv7_extract_timestamptz(TEXT) | 从 UUID v7 中提取时间戳 | |
| NanoID | idkit_nanoid_generate() | NanoID |
idkit_nanoid_custom_generate_text() | 自定义长度和字母表的 NanoID | |
| KSUID | idkit_ksuid_generate() | K-可排序 UID |
idkit_ksuid_extract_timestamptz(TEXT) | 从 KSUID 中提取时间戳 | |
idkit_ksuidms_generate() | 毫秒精度的 KSUID | |
idkit_ksuidms_extract_timestamptz(TEXT) | 从 KSUID-ms 中提取时间戳 | |
| ULID | idkit_ulid_generate() | 通用唯一字典序可排序标识符 |
idkit_ulid_extract_timestamptz(TEXT) | 从 ULID 中提取时间戳 | |
| Timeflake | idkit_timeflake_generate() | Snowflake + Instagram ID + Firebase PushID |
idkit_timeflake_extract_timestamptz(TEXT) | 从 Timeflake 中提取时间戳 | |
| PushID | idkit_pushid_generate() | Google Firebase PushID |
| XID | idkit_xid_generate() | XID |
idkit_xid_extract_timestamptz(TEXT) | 从 XID 中提取时间戳 | |
| CUID | idkit_cuid_generate() | CUID(已弃用) |
idkit_cuid_extract_timestamptz(TEXT) | 从 CUID 中提取时间戳 | |
| CUID2 | idkit_cuid2_generate() | CUID2 |
idkit_cuid2_generate_with_len(length) | 自定义长度的 CUID2 | |
| TypeID | idkit_typeid_generate(TEXT) | 带前缀和 UUIDv7 的 TypeID |
idkit_typeid_generate_text(TEXT) | TypeID,返回文本 | |
idkit_typeid_from_uuid_v7(TEXT, TEXT) | 从给定的 UUID v7 创建 TypeID | |
idkit_typeid_extract_timestamptz(TEXT) | 从 TypeID 中提取时间戳 |
示例
-- 生成不同类型的 ID
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
-- 提取时间戳
SELECT idkit_uuidv7_extract_timestamptz('018c106f-9304-79bb-b5be-4483b92b036c');