Skip to content
This repository has been archived by the owner on Nov 25, 2023. It is now read-only.
/ hashpool Public archive

A fixed-size pool of fixed-size hashes.

Notifications You must be signed in to change notification settings

seep/hashpool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hashpool

hashpool is a fixed-size pool of reusable hashes.

Examples

Generating six-digit hex hashes:

const pool = hashpool();

pool.take(); // 5a73f0
pool.take(); // 98de2c
pool.take(); // 4718ef

Returning hashes to the pool:

const pool = hashpool();

let hash = pool.take();
pool.taken(hash); // true

pool.free(hash);
pool.taken(hash); // false

Generating custom hashes:

const pool = hashpool({ bits: 4, base: 2 });

pool.take() // 0110
pool.take() // 0010
pool.take() // 1011

API

hashpool(options)

Makes a new hashpool. options.bits will change the number of bits the hashes. More bits, bigger pool. options.base will change the radix of the hashes, between 2 and 36. Bigger base, fewer digits with more characters. The defaults are { bits: 24, base: 16 } which generate six-digit hexadecimal hashes.

hashpool#take()

Take a hash from the pool. Will throw if the pool is empty.

hashpool#taken(hash)

Returns true if the hash was taken from the pool.

hashpool#free(value)

Put a hash back in the pool, where it can be reused.

Testing

hashpool uses tape for testing. Simply run npm test in the project directory.

About

A fixed-size pool of fixed-size hashes.

Topics

Resources

Stars

Watchers

Forks