Movatterモバイル変換


[0]ホーム

URL:


Dirk Eddelbuettel
RcppUUID– Universally Unique Identifiers (UUIDs) version 4 and 5

CILicense: GPL v2CRAN Statusr-universeDependenciesDownloadsLast Commit

Usage

Generate version 4 UUIDs

Generate single UUID:

RcppUUID::uuid_generate_random()#> [1] "95a0b90b-46bc-4e16-b41e-cb04bb53aa71"

Generate multiple UUIDs:

RcppUUID::uuid_generate_random(5)#> [1] "2d5caacd-7123-4072-b66f-74874f0424d9" "3c4f1e13-50af-46ab-a32a-f17cb1842875"#> [3] "b0c0075d-f1fb-476c-9d27-0dd07c63ddef" "e6992ca8-7b32-45ab-9fa2-e11690c11c35"#> [5] "4d9fce08-a71d-402f-9fa5-9e38fa136abb"

Check uniques for the uuids:

unique_n<-function(x)length(unique(x))n<-1000000unique_n(RcppUUID::uuid_generate_random(n))== n#> [1] TRUE

Benchmarking:

Single UUID:

microbenchmark::microbenchmark(uuid = uuid::UUIDgenerate(FALSE),RcppUUID = RcppUUID::uuid_generate_random())#> Unit: microseconds#>      expr  min    lq     mean median   uq      max neval#>      uuid 3.05 3.165 19.24921   3.28 3.36 1594.021   100#>  RcppUUID 2.04 2.075  2.36520   2.11 2.20   20.280   100

Multiple UUIDs:

n<-10000microbenchmark::microbenchmark(uuid = uuid::UUIDgenerate(FALSE, n),RcppUUID = RcppUUID::uuid_generate_random(n))#> Unit: milliseconds#>      expr      min       lq     mean   median       uq      max neval#>      uuid 25.47780 25.98014 29.13786 26.07774 26.19531 199.5827   100#>  RcppUUID 12.76133 13.05205 17.27462 13.46904 13.69007 203.0705   100

Generate version 5 UUIDs

Generate version UUIDs based on the text input:

RcppUUID::uuid_generate_name(letters[1:5])#> [1] "54a0a790-c611-5b5b-b50e-ff01490ecdfa" "d5080e36-1ba4-5cb3-861c-34b25868f7db"#> [3] "33ed51b6-a330-5830-bda9-2bac09e15753" "b74b2afe-06d5-5fea-99cc-a7de0b492704"#> [5] "8535136c-b0d3-5373-aa79-ab67d33a2a8e"

For the each unique input will be generated unique UUID. Checkuniqueness:

uuids<-replicate(10, RcppUUID::uuid_generate_name(letters))length(unique(as.vector(uuids)))==length(letters)#> [1] TRUE

Validate UUIDs

RcppUUID::uuid_validate(NA_character_)#> [1] FALSERcppUUID::uuid_validate("")#> [1] FALSERcppUUID::uuid_validate("not uuid")#> [1] FALSERcppUUID::uuid_validate(RcppUUID::uuid_generate_random(5))#> [1] TRUE TRUE TRUE TRUE TRUERcppUUID::uuid_validate(RcppUUID::uuid_generate_nil(5))#> [1] TRUE TRUE TRUE TRUE TRUERcppUUID::uuid_validate(RcppUUID::uuid_generate_name(letters[1:5]))#> [1] TRUE TRUE TRUE TRUE TRUE

Installation

To install the package from the CRAN run the following command:

install.packages("RcppUUID",repos ="https://cloud.r-project.org/")

Pre-releases can be installed fromr-universevia

repos<-c(ru ='https://eddelbuettel.r-universe.dev',getOption("repos"))install.packages('RcppUUID',repos = repos)

which provides binaries for several operating systems too.

One can install the development version with theinstall_github() function from theremotespackage:

remotes::install_github("eddelbuettel/rcppuuid")

This package contains the compiled code, therefore one has to use theRtools toinstall it on Windows.

Bug reports

Use the following command to go to the page for bug reportsubmissions:

bug.report(package ="RcppUUID")

Before reporting a bug or submitting an issue, please do thefollowing:

  • Make sure that you error or issue was not reported or discussedearlier. Please, use the search;
  • Check the news list of the current version. Some errors could becaused by the package changes. It could be done withnews(package = "RcppUUID", Version == packageVersion("RcppUUID"))command;
  • Make a minimal reproducible example of the code that consistentlycauses the error;
  • Make sure that the error occurs during the execution of a functionfrom theRcppUUID package, not from other packages;
  • Try to reproduce the error with the last development version of thepackage from the git repository.

Please attach traceback() and sessionInfo() output to bug report. Itmay save a lot of time.

License

TheRcppUUID package is distributed underGPLv2 license.

Author

The package was written byArtem Klevtsov andmaintained inthisGitLab repo.

The package in this repository is now maintained byDirk Eddelbuettel.

Initially created: Sun Feb 2 05:12:44 PM CST 2025
Last modified: Sun Feb 02 17:13:24 CST 2025


[8]
ページ先頭

©2009-2025 Movatter.jp