在 Erlang 中使用什么模块或库来生成通用唯一标识符 (UUID)?
您使用什么模块或库来生成通用唯一标识符 (UUID)?
What module or library do you use to generate universally unique identifier (UUID)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
对于像我这样未来的 Google 用户来说,avtobiff 的 erlang-uuid 工作起来非常简单。
For future googlers like myself, erlang-uuid from avtobiff works very simply.
来自 http://github.com/travis/erlang-uuid
from http://github.com/travis/erlang-uuid
来自 couchdb 的 Uuid 生成器:
http://svn.apache.org/viewvc/couchdb/主干/src/couchdb/couch_uuids.erl
Uuid generator from couchdb:
http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_uuids.erl
我建议对具有 rebar 支持的 Erlang 使用 ossp-uuid nif 绑定
https://github.com/yrashk/erlang-ossp-uuid
I recommend using the ossp-uuid nif bindings for Erlang that has rebar support
https://github.com/yrashk/erlang-ossp-uuid
为什么使用 round(math:pow(2, 48)) ?我认为
1 bsl 48
会工作得更快,并且代码不会失去理解。Why did you use
round(math:pow(2, 48))
? I think that1 bsl 48
will work more quickly and code will not lose understanding.试试这个:https://github.com/afiskon/erlang-uuid-v4有史以来最简单的实现。
Try this one: https://github.com/afiskon/erlang-uuid-v4 The simplest implementation ever.
如果您不需要遵循 RFC 4122 您可以使用
now/0
调用生成唯一ID,无需外部依赖,因为现在调用生成的元组在VM内部绝对唯一,并且在节点之间大概率是唯一的。If you don't need follow RFC 4122 you can use
now/0
call to generate unique ID without external dependencies, because tuple, generated by now call is absolutely unique inside VM and unique with large probability beetween nodes.这一个:
库:https://gitlab.com/zxq9/zuuid
文档:http://zxq9.com/projects/zuuid/docs/
它是唯一完整的 RFC-4122 UUID我知道 Erlang 中的实现有 v1、v2、v3、v4、v5 和作为“vVI”实现的“v6”建议,以及针对 NFC、Microsoft 和其他一些非 RFC 风格的变体检测机制。我写这篇文章是作为风格和文档的一个例子——基于我从 Erlang 列表上善良到卑鄙的人们那里收到的无数建议。
PS:非常感谢那些出色的 erlang-questions 人花时间对我提出的所有问题。 lib 对此要好得多。
This one:
Library: https://gitlab.com/zxq9/zuuid
Docs: http://zxq9.com/projects/zuuid/docs/
It is the only complete RFC-4122 UUID implementation in Erlang I'm aware of with v1, v2, v3, v4, v5, and the "v6" recommendation implemented as "vVI" as well as a variant detection mechanism for NFC, Microsoft, and a few other non-RFC flavors. I wrote this as an example of style and documentation -- based on the zillion recommendations I received from the kind-enough-to-be-mean folks on the Erlang list.
PS: Huge thanks to the awesome folks of erlang-questions for taking the time to sharpshoot me on everything. The lib is far better for it.
此代码生成
用于编译运行的 V4 UUID 代码:c(uuid)。
对于运行代码:uuid:uuid_v4()。
This code generate V4 UUID code
For compile run : c(uuid).
For run code : uuid:uuid_v4().