• Stars
    star
    617
  • Rank 72,724 (Top 2 %)
  • Language
    JavaScript
  • Created over 10 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Unique ID Generator

uniqid logo

unqiid npm badge uniqid npm downloads badge

A Unique Hexatridecimal ID generator.

It will always create unique id's based on the current time, process and machine name.

// install with npm 
npm install uniqid

// install with yarn
yarn add uniqid

Usage

import uniqid from 'uniqid';

console.log(uniqid()); // -> 4n5pxq24kpiob12og9
console.log(uniqid(), uniqid()); // -> 4n5pxq24kriob12ogd, 4n5pxq24ksiob12ogl

Usage with Require

var uniqid = require('uniqid'); 

console.log(uniqid()); // -> 4n5pxq24kpiob12og9
console.log(uniqid(), uniqid()); // -> 4n5pxq24kriob12ogd, 4n5pxq24ksiob12ogl

Usage in Browser

Take advantage of content delivery networks for Prototyping/Mockups

<!DOCTYPE html>
<html lang="en">

<head>
    <script src="https://unpkg.com/browse/[email protected]/UMD/uniqid.min.js"></script>
    <script>
        alert(`Here is an ID: ${uniqid()}`)
    </script>

    <title>Your App</title>
</head>

<body>

</body>

</html>

Features

  • Very fast
  • Generates unique id's on multiple processes and machines even if called at the same time.
  • Shorter 8 and 12 byte versions with less uniqueness.

How it works

  • With the current time the ID's are always unique in a single process.
  • With the Process ID the ID's are unique even if called at the same time from multiple processes.
  • With the MAC Address the ID's are unique even if called at the same time from multiple machines and processes.

API:

uniqid( prefix optional string , suffix optional string )

Generate 18 byte unique id's based on the time, process id and mac address. Works on multiple processes and machines.

uniqid() -> "4n5pxq24kpiob12og9"
uniqid('hello-') -> "hello-4n5pxq24kpiob12og9"
uniqid('hello-', '-goodbye') -> "hello-4n5pxq24kpiob12og9-goodbye"

// usage with suffix only
uniqid('', '-goodbye') -> "4n5pxq24kpiob12og9-goodbye"
uniqid(undefined, '-goodbye') -> "4n5pxq24kpiob12og9-goodbye"

uniqid.process( prefix optional string , suffix optional string )

Generate 12 byte unique id's based on the time and the process id. Works on multiple processes within a single machine but not on multiple machines.

uniqid.process() -> "24ieiob0te82"

uniqid.time( prefix optional string , suffix optional string )

Generate 8 byte unique id's based on the current time only. Recommended only on a single process on a single machine.

uniqid.time() -> "iob0ucoj"

Webpack, Browserify, Vite

Since browsers don't provide a Process ID and in most cases neither give a Mac Address using uniqid from Webpack, Browserify and Vite falls back to uniqid.time() for all the other methods too. The browser is the single process, single machine case anyway.

Debug

Debug messages are turned off by default as of v4.1.0. To turn on debug messages you'll need to set uniqid_debug to true before you require the module.

// enable debug messages
module.uniqid_debug = true;

// require the module
var uniqid = require('uniqid');

License

(The MIT License)

Copyright (c) 2014-2021 Halász Ádám [email protected]

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

More Repositories

1

diet

A tiny, fast and modular node.js web framework. Good for making fast & scalable apps and apis.
JavaScript
400
star
2

diet-vue

A tiny example on how to use Diet.js as the Router/Static File Handler, Vue for Dynamic Data Binding and Socket.io for Real-time Data Streaming.
JavaScript
7
star
3

consent

Fast, lightweight, customizable RFC 6749 compliant OAuth2 server. Works with diet and mongo.
JavaScript
7
star
4

diet-auth

Dead-simple authentication for diet.js
JavaScript
6
star
5

logminer

An object oriented logger for more organised log tracking.
JavaScript
6
star
6

paint

A web based real-time painting application based on Angular4, Express and MongoDB
JavaScript
5
star
7

diet-ect

ECT based diet plugin for rendering Dynamic HTML files
JavaScript
5
star
8

dietjs.com

The source code behind dietjs.com
HTML
5
star
9

docker-node-example

A simple example for running a Node.js Server with Docker.
JavaScript
4
star
10

diet-static

Static file server for diet based on send. A streaming static file server supporting partial responses (Ranges), conditional-GET negotiation, high test coverage, and granular events which may be leveraged to take appropriate actions in your application or framework.
JavaScript
3
star
11

querystrings

A querystring parser used in diet. Supports multidimensional arrays & objects. Converts values into their correct data types.
JavaScript
3
star
12

diet-tasks

JavaScript
3
star
13

nextjs

The fastest async handler in node.js
JavaScript
2
star
14

diet-request

Simple HTTP Request Client
JavaScript
2
star
15

diet-use

Require files, modules and directories too.
JavaScript
2
star
16

diet-mysql

A MySQL module for Diet
JavaScript
1
star
17

generator-diet

Generate a basic diet project with an MVC structure
JavaScript
1
star
18

owner

JavaScript
1
star
19

diet-dictionary

Translation Engine for Dietjs
JavaScript
1
star
20

diet-accounts

Account Management for Diet.js
JavaScript
1
star
21

diet-mongo

A diet plugin for the official node.js mongodb driver
JavaScript
1
star
22

demand

Form error handling for dietjs
JavaScript
1
star
23

cups

An Algorithm & Data Structure Library for Node.js
JavaScript
1
star
24

diet-cookies

HTTP Cookie Manager for dietjs
JavaScript
1
star
25

diet-comet

Flexible COMET (long polling) module for node.js
JavaScript
1
star
26

reorder-array

JavaScript
1
star
27

diet-mail

Send emails with diet.
JavaScript
1
star
28

tutorial

1
star
29

diet-mongoose

A diet plugin for mongoose
JavaScript
1
star
30

diet-upload

Node.js upload module built on formidable. It's fast and supports progress tracking and mysql.
JavaScript
1
star
31

chrome-extension-boilerplate

JavaScript
1
star
32

secureftp

Create SFTP connections in node.js to remote servers
JavaScript
1
star
33

local

Beautiful localization library for Node.js
JavaScript
1
star