digest Build Status License CRAN Downloads Dependencies Code Coverage

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 and spookyhash 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 caching strategies for which the digest package is somewhat widely used.

Other Functions

A small number of additional functions is available:

Note

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

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, and Kendon Bell.

License

GPL (>= 2)