npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

crypt-uniid

v2.1.0

Published

A secure, efficient, and machine-aware unique ID generator using timestamp, counter, and SHA-256 hashing.

Readme

Unique ID Generator

This package provides a simple and efficient way to generate unique IDs using timestamps, collision handling, and SHA-256 hashing. This library can generate billions of unique IDs, and we guarantee that every ID generated will be 100% unique. Using the v1 method provided by Crypt-uniid, you can generate millions or even billions of IDs in an hour, a minute, a second, or even a nanosecond, depending on your machine's performance. You can be completely confident that every generated ID will be unique. This library is very lightweight and runs everything in less than 85 lines of JS code. No other dependencies are needed.

npm version

Features

  • Generates unique IDs based on system time (in nanoseconds) to ensure uniqueness.
  • Uses SHA-256 hashing for added security and consistency.
  • Can be used across different machines using unique machine IDs for distributed systems.

Encoding formats

Accepted parameters optionsl use lowercase (recomended) default "hex"

  • Hexadecimal (Hex)
  • Base64
  • Binary
  • utf8
  • Raw (Binary Buffer)
  • Base32

Documentation

  • Official documentation github link: https://github.com/mdmarufa/crypt-uniid

Password Structure

The unique ID is generated based on the following structure:

  1. Timestamp: The current system time in nanoseconds.
  2. Collision Handling: If the timestamp is the same as the previous one, the counter is incremented.
  3. Machine ID: A unique machine identifier (MACHIN_ID), which is configured in the .env file. This ensures uniqueness across multiple machines.
  4. Hashing: The final ID is hashed using the SHA-256 algorithm to provide a consistent, fixed-length ID.

Installation

To get started, you need to install the package:

npm install crypt-uniid

Note

MACHIN_ID: The MACHIN_ID should be set in your .env file to ensure that IDs are unique across different machines. The format of the MACHIN_ID should be a string with at least 8 characters, including a mix of uppercase and lowercase letters, numbers, and special characters.

Example .env file: MACHIN_ID=Your Password #for unique you machin in distributed system

Configuaration

If MACHIN_ID is not set correctly or not found in .env file, you will get the following error: Error: Machine ID not found. Message: It's likely that you haven't configured the 'MACHIN_ID' in your environment variables. Please refer to the documentation for more details. Code: 9332 ```

  1. **Once installed and configured, you can import the package and start generating unique IDs.

Use

    const { v1 } = require("crypt-uniid");

    const uniqueId = v1(); // parameters optional
    console.log("Generated Unique ID: ", uniqueId);
  1. **If the MACHIN_ID is not set in your .env file or is incorrect, the package will throw a CustomError with a descriptive message.
  2. **The error message includes guidance to help you configure the MACHIN_ID correctly.