tgrk/humanids
GitHub: tgrk/humanids
一个 Elixir 库,通过随机单词与数字组合生成易于阅读和朗读的人类可读 ID。
Stars: 2 | Forks: 0
# HumanIDs
[](https://hex.pm/packages/humanids)
[](https://hexdocs.pm/humanids/)
[](https://github.com/tgrk/humanids/actions/workflows/elixir.yaml)
[](https://coveralls.io/github/tgrk/humanids)
[](LICENSE)
HumanIDs 是一个小巧的 Elixir 库,用于通过随机单词加上数字后缀来生成人类可读的 ID。与难以辨认的标识符相比,其输出更易于阅读、朗读和分享。
示例:
- `nimble-otters-42`
- `curious-foxes-7`
- `jazzy-platypuses-100`
这些 ID 是对人类友好的,并不具备安全性。请勿将其作为您的主要数据库键或对安全性敏感的 token 使用。
## 安装说明
在 `mix.exs` 中将 `humanids` 添加到您的依赖项:
```
def deps do
[
{:humanids, "~> 0.2.0"}
]
end
```
然后使用以下命令拉取依赖项:
```
mix deps.get
```
## 用法
生成默认的三段式 ID:
```
iex> HumanIDs.generate()
"nimble-otters-42"
```
使用 `:segments` 增加总段数:
```
iex> HumanIDs.generate(segments: 4)
"curious-gazelles-dragons-7"
```
默认情况下,HumanIDs 会从内置的形容词和名词列表中提取随机单词进行组合,然后追加一个从 `1` 到 `100` 的数字。
## 开发
安装依赖项:
```
mix deps.get
```
运行测试套件:
```
mix test
```
格式化代码、检查覆盖率并运行静态分析:
```
mix format
mix coveralls
mix dialyzer
```
CI 还会强制要求编译时无任何警告且代码已格式化:
```
mix compile --warnings-as-errors
mix format --check-formatted
```
## 基准测试
该仓库在 [`benchmark/default.exs`](benchmark/default.exs) 中包含了一个 Benchee 基准测试。使用以下命令运行它:
```
mix run benchmark/default.exs
```
## 许可证
在 Apache 2.0 许可证下发布。参见 [LICENSE](LICENSE)。
标签:Elixir, ID生成器, SOC Prime, 开发工具, 开发库