@rasmx/uid
v1.0.1
Published
Blazing fast WASM ID generation library powered by Rust. Support for UUID (v1-v7), ULID, NanoID, and Base62 shortening.
Maintainers
Readme
@rasmx/uid
Blazing fast ID generation library powered by Rust and WebAssembly. Optimized for performance and modern standards.
Features
- UUID: Support for versions 1, 3, 4, 5, 6, and 7.
- ULID: Lexicographically sortable identifiers with millisecond precision.
- NanoID: Secure, URL-friendly unique identifiers with custom alphabet support.
- Short IDs: Built-in Base62 encoding/decoding to shorten your UUIDs.
- Metadata: Extract timestamps directly from UUID v7 and ULID.
- Bulk Generation: Highly optimized vector-based bulk generation for UUID v7.
Installation
pnpm add @rasmx/uidUsage
Basic Usage
import init, { uuid, ulid, nanoid } from '@rasmx/uid';
// Initialize the WASM module
await init();
// Generate IDs
const idV4 = await uuid.v4();
const idV7 = await uuid.v7();
const myUlid = await ulid.generate();
const myNanoId = await nanoid(21);Advanced Features
// Bulk generation (UUID v7)
const ids = await uuid.bulk(1000);
// Extract timestamp from ID
const date = await uuid.getTimestamp(idV7);
console.log(date.toISOString());
// Shorten UUID (Base62)
const short = await uuid.toShort(idV4);
const original = await uuid.fromShort(short);
// Deterministic UUIDs
const namespace = "6ba7b810-9dad-11d1-80b4-00c04fd430c8";
const idV5 = await uuid.v5(namespace, "example");API Reference
uuid
v1(), v4(), v6(), v7(): ReturnsPromise<string>v3(ns, name), v5(ns, name): ReturnsPromise<string>bulk(amount): ReturnsPromise<string[]>isValid(str): ReturnsPromise<boolean>toShort(uuid): Converts UUID to Base62 string.fromShort(shortId): Converts Base62 string back to UUID.getTimestamp(uuid): Extracts Date from v7.
ulid
generate(): ReturnsPromise<string>fromTime(ms): Generates ULID for specific timestamp.getTimestamp(ulid): Extracts Date from ULID.
nanoid
nanoid(size?, alphabet?): ReturnsPromise<string>
License
MIT
