All Projects → eddelbuettel → digest

eddelbuettel / digest

Licence: other
R package to create compact hash digests of R objects

Programming Languages

c
50402 projects - #5 most used programming language
r
7636 projects
C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to digest

inline
Inline C, C++ or Fortran functions in R
Stars: ✭ 33 (-64.89%)
Mutual labels:  cran, r-package
rcppgsl
Rcpp integration for GNU GSL vectors and matrices
Stars: ✭ 28 (-70.21%)
Mutual labels:  cran, r-package
worldfootballR
A wrapper for extracting world football (soccer) data from FBref, Transfermark, Understat and fotmob
Stars: ✭ 188 (+100%)
Mutual labels:  cran, r-package
nflfastR
A Set of Functions to Efficiently Scrape NFL Play by Play Data
Stars: ✭ 268 (+185.11%)
Mutual labels:  cran, r-package
pbapply
Adding progress bar to '*apply' functions in R
Stars: ✭ 115 (+22.34%)
Mutual labels:  cran, r-package
BAS
BAS R package https://merliseclyde.github.io/BAS/
Stars: ✭ 36 (-61.7%)
Mutual labels:  cran, r-package
rprotobuf
R Interface to Protocol Buffers
Stars: ✭ 62 (-34.04%)
Mutual labels:  cran, r-package
bruceR
📦 BRoadly Useful Convenient and Efficient R functions that BRing Users Concise and Elegant R data analyses.
Stars: ✭ 110 (+17.02%)
Mutual labels:  cran, r-package
FLightR
R package to position animals with solar geolocation archival tags
Stars: ✭ 16 (-82.98%)
Mutual labels:  cran, r-package
jpndistrict
🗾 Create Japansese Administration Area Maps
Stars: ✭ 18 (-80.85%)
Mutual labels:  cran, r-package
vioplot
Development version of vioplot R package (CRAN maintainer)
Stars: ✭ 25 (-73.4%)
Mutual labels:  cran, r-package
UCSCXenaShiny
📊 An R package for interactively exploring UCSC Xena https://xenabrowser.net/datapages/
Stars: ✭ 52 (-44.68%)
Mutual labels:  cran, r-package
rcppmsgpack
MsgPack Headers for R / msgpack.org[R]
Stars: ✭ 17 (-81.91%)
Mutual labels:  cran, r-package
TDAstats
R pipeline for computing persistent homology in topological data analysis. See https://doi.org/10.21105/joss.00860 for more details.
Stars: ✭ 26 (-72.34%)
Mutual labels:  cran, r-package
qwraps2
An updated version of qwraps with a focus on flexibility and general purpose. These functions are helpful for extracting and formatting results from R into .Rnw or .Rmd files. Additional functions for routine work such as extracting results from regression models or finding sensitivity and specificity.
Stars: ✭ 33 (-64.89%)
Mutual labels:  cran, r-package
pkgkitten
Create simple packages which pass R CMD check
Stars: ✭ 31 (-67.02%)
Mutual labels:  cran, r-package
rcppfastfloat
Rcpp Bindings for the 'fastfloat' Header-Only Library
Stars: ✭ 18 (-80.85%)
Mutual labels:  cran, r-package
apsimx
R package for APSIM-X
Stars: ✭ 30 (-68.09%)
Mutual labels:  cran, r-package
heddlr
Bring a functional programming mindset to R Markdown document generation
Stars: ✭ 14 (-85.11%)
Mutual labels:  cran, r-package
PackageDevelopment
Task View: PackageDevelopment
Stars: ✭ 38 (-59.57%)
Mutual labels:  cran, r-package

digest: Compact hash representations of arbitrary R objects

ci License CRAN Dependencies Debian package Downloads (monthly) Downloads (total) CRAN use CRAN indirect BioConductor use Code Coverage Last Commit Documentation

Compact hash representations of arbitrary R objects

Overview

The digest package provides a principal function digest() for the creation of hash digests of arbitrary R objects (using the md5, sha-1, sha-256, crc32, xxhash, murmurhash, spookyhash and blake3 algorithms) permitting easy comparison of R language objects.

Examples

As R can serialize any object, we can run digest() on any object:

R> library(digest)
R> digest(trees)
[1] "12412cbfa6629c5c80029209b2717f08"
R> digest(lm(log(Height) ~ log(Girth), data=trees))
[1] "e25b62de327d079b3ccb98f3e96987b1"
R> digest(summary(lm(log(Height) ~ log(Girth), data=trees)))
[1] "86c8c979ee41a09006949e2ad95feb41"
R> 

By using the hash sum, which is very likely to be unique, to identify an underlying object or calculation, one can easily implement caching strategies. This is a common use of the digest package.

Other Functions

A small number of additional functions is available:

  • sha1() for numerally stable hashsums,
  • hmac() for hashed message authentication codes based on a key,
  • AES() for Advanced Encryption Standard block ciphers.

Note

Please note that this package is not meant to be deployed for cryptographic purposes. More comprehensive and widely tested libraries such as OpenSSL should be used instead.

Installation

The package is on CRAN and can be installed via a standard

install.packages("digest")

Continued Testing

As we rely on the tinytest package, the already-installed package can also be verified via

tinytest::test_package("digest")

at any later point.

Author

Dirk Eddelbuettel, with contributions by Antoine Lucas, Jarek Tuszynski, Henrik Bengtsson, Simon Urbanek, Mario Frasca, Bryan Lewis, Murray Stokely, Hannes Muehleisen, Duncan Murdoch, Jim Hester, Wush Wu, Qiang Kou, Thierry Onkelinx, Michel Lang, Viliam Simko, Kurt Hornik, Radford Neal, Kendon Bell, Matthew de Queljoe, Ion Suruceanu, Bill Denney, Dirk Schumacher, and Winston Chang.

License

GPL (>= 2)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].