tí hon [4. Thư viện không phụ thuộc được rút gọn 6kB] để tạo UUID ngẫu nhiên hoặc tuần tự có độ dài bất kỳ với xác suất ID trùng lặp cực nhỏ
const uid = new ShortUniqueId[{ length: 10 }];
uid[]; // p0ZoB1FwH6
uid[]; // mSjGCTfn8w
uid[]; // yt4Xx5nHMB
// ...
Ví dụ: sử dụng từ điển mặc định của số và chữ cái [chữ thường và chữ hoa]
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
- nếu bạn tạo ID duy nhất gồm 16 ký tự [một nửa UUID tiêu chuẩn gồm 32 ký tự]
- tạo 100 ID duy nhất mỗi giây
Sẽ mất ~10 nghìn năm để có xác suất 1% xảy ra ít nhất một vụ va chạm
Để đưa điều này vào quan điểm
- 73 năm là tuổi thọ trung bình [toàn cầu] của con người
- 120 năm trước chưa có con người nào đặt chân lên một trong hai cực của Trái đất
- 480 năm trước, Nicolaus Copernicus vẫn đang nghiên cứu lý thuyết về Trái đất quay quanh Mặt trời
- 1000 năm trước không có thứ gọi là tiền giấy do chính phủ phát hành [và sẽ không có trong khoảng một thế kỷ]
- 5000 năm trước, dân số toàn cầu dưới 50 triệu người [hiện tại Mexico có dân số 127 triệu người]
Bạn có thể tính toán xác suất trùng lặp/xung đột bằng cách sử dụng các chức năng đi kèm
GHI CHÚ. 👆 Trên các liên kết này, bạn cũng sẽ tìm thấy giải thích cho toán học được sử dụng trong các hàm
thông báo mã nguồn mở
Dự án này được mở để người dùng cập nhật, tôi đảm bảo rằng các PR có liên quan đến cộng đồng. Nói cách khác, nếu bạn tìm thấy một lỗi hoặc muốn một tính năng mới, hãy giúp chúng tôi bằng cách trở thành một trong những ✌️. xem
Thích mô-đun này?
Xin vui lòng xem xét
📣 Thông báo v4
Tính năng mới 🥳
Khả năng tạo UUID chứa dấu thời gian có thể được trích xuất
// js/ts
const uid = new ShortUniqueId[];
const uidWithTimestamp = uid.stamp[32];
console.log[uidWithTimestamp];
// GDa608f973aRCHLXQYPTbKDbjDeVsSb3
const recoveredTimestamp = uid.parseStamp[uidWithTimestamp];
console.log[recoveredTimestamp];
// 2021-05-03T06:24:58.000Z
# cli
$ suid -s -l 42
lW611f30a2ky4276g3l8N7nBHI5AQ5rCiwYzU47HP2
$ suid -p lW611f30a2ky4276g3l8N7nBHI5AQ5rCiwYzU47HP2
2021-08-20T04:33:38.000Z
Từ điển mặc định [được tạo tại chỗ để giảm dung lượng bộ nhớ và tránh các lỗ hổng chèn từ điển]
- con số
- chữ cái
- alpha_lower
- alpha_upper
- chữ cái [mặc định khi không có từ điển nào được cung cấp cho
4]0,1,2,3,4,5,6,7,8,9, a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z, A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
- alphanum_lower
- alphanum_upper
- lục giác
// instantiate using one of the default dictionary strings
const uid = new ShortUniqueId[{
dictionary: 'hex', // the default
}];
console.log[uid.dict.join[]];
// 0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
// or change the dictionary after instantiation
uid.setDictionary['alpha_upper'];
console.log[uid.dict.join[]];
// A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
Sử dụng trong CLI
$ npm install -g short-unique-id
$ suid -h
# Usage:
# node short-unique-id [OPTION]
# Options:
# -l, --length=ARG character length of the uid to generate.
# -s, --stamp include timestamp in uid [must be used with --length [-l] of 10 or more].
# -p, --parse=ARG extract timestamp from stamped uid [ARG].
# -d, --dictionaryJson=ARG json file with dictionary array.
# -h, --help display this help
Sử dụng như mô-đun
Thêm vào dự án của bạn
// Deno [web module] Import
import ShortUniqueId from '//esm.sh/short-unique-id';
// ES6 / TypeScript Import
import ShortUniqueId from 'short-unique-id';
// Node.js require
const ShortUniqueId = require['short-unique-id'];
Khởi tạo và sử dụng
________số 8Sử dụng trong trình duyệt
Tùy chọn
Các tùy chọn có thể được thông qua khi khởi tạo
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
5 0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
1Để biết thêm thông tin, hãy xem các tài liệu
có sẵn cho
Tài liệu với Trình tạo UUID ngắn trực tuyến
Bạn có thể tìm tài liệu và trình tạo trực tuyến tại
https. // rút gọn. Tôi
Xác suất tạo lại cùng một id là gì?
Điều này phần lớn phụ thuộc vào từ điển nhất định và độ dài UUID đã chọn
Ngay lập tức, thư viện này cung cấp một từ điển xáo trộn các chữ số từ 0 đến 9, cũng như bảng chữ cái từ a đến z ở cả chữ HOA và chữ thường, với độ dài UUID mặc định là 6. Điều đó mang lại cho bạn tổng cộng 56.800.235.584 UUID có thể
Vì vậy, với các giá trị trước đó, xác suất tạo một bản sao trong 1.000.000 vòng là ~ 0. 00000002, hoặc khoảng 1 trên 50.000.000
Nếu bạn thay đổi từ điển và/hoặc độ dài UUID thì chúng tôi đã cung cấp hàm
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
6 để tính xác suất trúng một bản sao trong một số vòng nhất định [va chạm] và hàm 0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
7 cung cấp điểm [từ 0 đến 1 Để tìm hiểu thêm về toán học đằng sau các chức năng này, vui lòng tham khảo
Xác nhận và hỗ trợ nền tảng
Gói repo và npm này bắt đầu dưới dạng chuyển đổi thủ công sang ES6 của gói npm short-uid của Ankit Kuwadekar
Vì gói này hiện đang báo cáo hơn 12 nghìn lượt tải xuống npm hàng tuần và hơn 100 nghìn lượt truy cập cdn hàng tuần, nên chúng tôi đã tiếp tục và viết lại toàn bộ gói này trong TypeScript và đảm bảo đóng gói các mô-đun dist tương thích với Deno, Node. js và tất cả các Trình duyệt chính
Phát triển
Sao chép repo này
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
0Kiểm tra chạy bằng cách sử dụng
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
1Xây dựng
Để xuất bản các thay đổi mới nhất, bạn phải xây dựng các tệp phân phối
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
2Sau đó cam kết tất cả các thay đổi và chạy tập lệnh phát hành
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
3Đóng góp
Vâng, cảm ơn. Plugin này hướng đến cộng đồng, hầu hết các tính năng của nó là từ các tác giả khác nhau. Vui lòng cập nhật tài liệu và bài kiểm tra và thêm tên của bạn vào tệp
0,1,2,3,4,5,6,7,8,9,
a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,
A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z
8