LinusU/react-native-get-random-values

A small implementation of `getRandomValues` for React Native

415

stars

47

commits

JavaScript

primary language

Oct 22, 2025

updated

crypto
hacktoberfest
javascript
random
react-native
rng
webcrypto
Browse cluster: Ruby runtime implementations and concurrency β†’

README

crypto.getRandomValues for React Native

A small implementation of crypto.getRandomValues for React Native. This is useful to polyfill for libraries like uuid that depend on it.

Installation

npm install react-native-get-random-values
npx pod-install

πŸ’‘ If you use the Expo managed workflow you will see "CocoaPods is not supported in this project" - this is fine, it's not necessary.

Usage

This library works as a polyfill for the global crypto.getRandomValues.

// Add this line to your `index.js`
import 'react-native-get-random-values'

Now you can use uuid or other libraries that assume crypto.getRandomValues is available.

import { v4 as uuid } from 'uuid'

console.log(uuid())

API

crypto.getRandomValues(typedArray)

The crypto.getRandomValues() method lets you get cryptographically strong random values. The array given as the parameter is filled with random numbers (random in its cryptographic meaning).

To guarantee enough performance, implementations are not using a truly random number generator, but they are using a pseudo-random number generator seeded with a value with enough entropy. The PRNG used differs from one implementation to the other but is suitable for cryptographic usages. Implementations are also required to use a seed with enough entropy, like a system-level entropy source.

  • typedArray - Is an integer-based TypedArray, that is an Int8Array, a Uint8Array, an Int16Array, a Uint16Array, an Int32Array, or a Uint32Array. All elements in the array are going to be overridden with random numbers.

Returns the typed array that was passed in.

Contributors

LinusU

33 commits

brentvatne

3 commits

jhen0409

1 commits

Kudo

1 commits

LinusU/react-native-get-random-values

A small implementation of `getRandomValues` for React Native

415

stars

47

commits

JavaScript

primary language

Oct 22, 2025

updated

crypto
hacktoberfest
javascript
random
react-native
rng
webcrypto
Browse cluster: Ruby runtime implementations and concurrency β†’

README

crypto.getRandomValues for React Native

A small implementation of crypto.getRandomValues for React Native. This is useful to polyfill for libraries like uuid that depend on it.

Installation

npm install react-native-get-random-values
npx pod-install

πŸ’‘ If you use the Expo managed workflow you will see "CocoaPods is not supported in this project" - this is fine, it's not necessary.

Usage

This library works as a polyfill for the global crypto.getRandomValues.

// Add this line to your `index.js`
import 'react-native-get-random-values'

Now you can use uuid or other libraries that assume crypto.getRandomValues is available.

import { v4 as uuid } from 'uuid'

console.log(uuid())

API

crypto.getRandomValues(typedArray)

The crypto.getRandomValues() method lets you get cryptographically strong random values. The array given as the parameter is filled with random numbers (random in its cryptographic meaning).

To guarantee enough performance, implementations are not using a truly random number generator, but they are using a pseudo-random number generator seeded with a value with enough entropy. The PRNG used differs from one implementation to the other but is suitable for cryptographic usages. Implementations are also required to use a seed with enough entropy, like a system-level entropy source.

  • typedArray - Is an integer-based TypedArray, that is an Int8Array, a Uint8Array, an Int16Array, a Uint16Array, an Int32Array, or a Uint32Array. All elements in the array are going to be overridden with random numbers.

Returns the typed array that was passed in.

Contributors

LinusU

33 commits

brentvatne

3 commits

jhen0409

1 commits

Kudo

1 commits

Languages

JavaScript

39.1%

Java

32.1%

Objective-C++

11.8%

Ruby

11.3%

TypeScript

3.6%

Objective-C

2.0%