Commit graph

12 commits

Author SHA1 Message Date
Blake Imsland
e86b4c29fc [ruby/securerandom] Increase speed of UUID generation
b587b8c7cb
2023-12-29 02:43:45 +00:00
Hiroshi SHIBATA
6931222883 [ruby/securerandom] Typofix by misspell
e8be08901a
2023-12-25 21:12:49 +09:00
Nobuyoshi Nakada
dbd704ae6f [ruby/securerandom] [DOC] Add documents of methods and constants
9a99978135
2023-12-12 06:40:43 +00:00
Yusuke Endoh
cb93d10ae5 [ruby/securerandom] [DOC] Improve the document about reproducibility of uuid_v7
https://github.com/ruby/securerandom/pull/19/files#r1329476195

156cbb8448
2023-12-12 06:36:10 +00:00
nick evans
dfb2b4cbc9 [ruby/securerandom] Add support for UUID version 7
Although the specification for UUIDv7 is still in draft, the UUIDv7
algorithm has been relatively stable as it progresses to completion.

Version 7 UUIDs can be very useful, because they are lexographically
sortable, which can improve e.g: database index locality.  See section
6.10 of the draft specification for further explanation:

  https://datatracker.ietf.org/doc/draft-ietf-uuidrev-rfc4122bis/

The specification allows up to 12 bits of extra timestamp precision, to
make UUID generation closer to monotonically increasing.  This provides
between 1ms and ~240ns of timestamp precision.  At the cost of some code
complexity and a small performance penalty, a kwarg may specify any
arbitrary precision between 0 and 12 extra bits.  Any stronger
guarantees of monotonicity have considerably larger tradeoffs, so
nothing more is implemented.  This limitation is documented.

Ruby issue: https://bugs.ruby-lang.org/issues/19735

34ed1a2ec3
2023-09-19 01:55:27 +00:00
Petrik
cfae3ed422 Fix code example doc for Random.alphanumeric 2023-08-29 19:48:28 +09:00
Nobuyoshi Nakada
7e5c662a6f
[Feature #18183] Add chars: option to Random#alphanumeric 2023-08-29 10:56:56 +09:00
zverok
381a373ab9 [DOC] Improve Random::Formatter docs
* Make its usage more obvious (by providing more detailed
  examples);
* Include mention of it into Random itself;
* Small cleanups of docs.
2022-12-11 18:49:56 +02:00
Nobuyoshi Nakada
900e0c8c39 [ruby/securerandom] Use String#unpack1
5460a18c35
2021-12-14 11:59:22 +09:00
Nobuyoshi Nakada
40b0d69dad
[DOC] Fix a type [ci skip] 2021-12-14 11:52:26 +09:00
Nobuyoshi Nakada
dc490aced3
[DOC] Improve Random::Formatter description and example 2021-12-13 19:55:44 +09:00
Nobuyoshi Nakada
12a0a89e22 [ruby/securerandom] Split Random::Formatter from SecureRandom [Feature #18190]
1e57277b9e
2021-12-09 20:26:44 +09:00