R: Hashing

hash {rlang} | R Documentation

## Hashing

### Description

- `hash()` hashes an arbitrary R object.

- `hash_file()` hashes the data contained in a file.

The generated hash is guaranteed to be reproducible across platforms that have the same endianness and are using the same R version.

### Usage

    hash(x)

    hash_file(path)

### Arguments

`x` | An object.
`path` | A character vector of paths to the files to be hashed.

### Details

These hashers use the XXH128 hash algorithm of the xxHash library, which generates a 128-bit hash. Both are implemented as streaming hashes, which generate the hash with minimal extra memory usage.

For `hash()`, objects are converted to binary using R's native serialization tools. On R >= 3.5.0, serialization version 3 is used, otherwise version 2 is used. See `serialize()` for more information about the serialization version.

### Value

- For `hash()`, a single character string containing the hash.

- For `hash_file()`, a character vector containing one hash per file.

### Examples

    hash(c(1, 2, 3))
    hash(mtcars)

    authors <- file.path(R.home("doc"), "AUTHORS")
    copying <- file.path(R.home("doc"), "COPYING")
    hashes <- hash_file(c(authors, copying))
    hashes

    # If you need a single hash for multiple files,
    # hash the result of `hash_file()`
    hash(hashes)

[Package rlang version 1.0.2 Index]