shortuuid 技术文档
短UUID(shortuuid)是一个专为Go语言设计的库,用于生成简洁、无歧义且URL安全的UUID。它基于Python的shortuuid
库并与其兼容,采用google/uuid生成标准UUID后,通过转换成base57编码形式,仅使用小写字母、大写字母和数字,并排除易混淆字符如l、1、I、O和0,从而达到优化显示效果的目的。
安装指南
要安装shortuuid
,您需要先确保您的系统已经配置好了Go环境。之后,执行以下命令即可轻松安装:
go get -u github.com/lithammer/shortuuid/v4
这将会下载库到您的 $GOPATH/src/github.com/lithammer/shortuuid/v4
目录下,并完成安装过程。
项目的使用说明
使用shortuuid
非常直观,主要通过几个核心函数来生成和处理短UUID。
基本使用
在您的Go代码中引入shortuuid
:
import (
"fmt"
"github.com/lithammer/shortuuid/v4"
)
然后,您可以很简单地生成一个短UUID:
func generateBasicShortUUID() {
u := shortuuid.New()
fmt.Println(u) // 示例输出: KwSysDpxcBU9FNhGkn2dCf
}
指定UUID版本
如果您想要创建特定版本的UUID,比如UUIDv5,可以使用NewWithNamespace
方法:
func generateUUIDv5() {
u := shortuuid.NewWithNamespace("http://example.com")
fmt.Println(u)
}
自定义字母表
若需自定义生成短码所使用的字符集,确保其长度为57个字符:
func generateCustomAlphabetShortUUID() {
alphabet := "23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxy="
u := shortuuid.NewWithAlphabet(alphabet)
fmt.Println(u) // 示例输出: iZsai==fWebXd5rLRWFB=u
}
使用自定义编码器
支持自定义编码逻辑,例如,实现Base58编码:
import (
"fmt"
"github.com/btcsuite/btcutil/base58"
"github.com/google/uuid"
)
// 自定义Base58编码器
type base58Encoder struct{}
func (enc base58Encoder) Encode(u uuid.UUID) string {
return base58.Encode(u[:])
}
func (enc base58Encoder) Decode(s string) (uuid.UUID, error) {
return uuid.FromBytes(base58.Decode(s))
}
func generateWithCustomEncoder() {
enc := base58Encoder{}
u := shortuuid.NewWithEncoder(enc)
fmt.Println(u) // 示例输出: 6R7VqaQHbzC1xwA5UueGe6
}
API使用文档
- New(): 生成一个默认的UUIDv4的短UUID字符串。
- NewWithNamespace(string): 根据提供的命名空间生成UUIDv5的短UUID。
- NewWithAlphabet(string): 指定字母表后生成短UUID,字母表长度必须为57。
- NewWithEncoder(interface{}): 提供自定义编码器生成短UUID,其中接口需实现Encode和Decode方法。
许可证
此项目遵循MIT许可证。意味着您可以自由地使用、复制、修改及分发这段代码,但请确保保留相关版权声明信息。
以上即是shortuuid
库的基本使用与配置指南,希望能帮助您轻松集成并利用该库在项目中生成便于展示和管理的UUID。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考