Making ReadyTools Vault Faster: Performance and Caching Improvements
Opening files, browsing folders, selecting documents, and switching between different storage environments should be smooth, even when dealing with larger
Leer actualización
August 24, 2026
4 min de lectura
Introducing @readytools/id — The Ultimate Ultra-Fast, Zero-Dependency ID & Token Generator for Modern Enterprise Systems
readytools
Autor de ReadyTools
We’re excited to announce the official release of @readytools/id (v1.0.6), our newest professional npm package designed from the ground up for developers building high-performance, secure, and scalable applications.
After seeing the fragmentation in the JavaScript ID ecosystem — where teams juggle separate packages for UUIDs, NanoIDs, ULIDs, CUIDs, and more — we built a single, battle-ready solution that replaces them all without adding a single dependency to your project.
The JavaScript ecosystem has long forced developers into a fragmented toolkit:
@readytools/id is the all-in-one replacement that solves real-world enterprise problems while keeping your node_modules clean and your supply-chain risk near zero.
npm install @readytools/id # or pnpm add @readytools/id # or yarn add @readytools/id
Random UUIDv4 values cause significant B-Tree index fragmentation in PostgreSQL and MySQL. UUIDv7 and ULID solve this by being chronologically sortable.
import { uuidv7, ulid } from '@readytools/id';
const uid = uuidv7(); // "01917f9b-6b80-71a2-8b9a-1c8f3b2a4d5e"
const u = ulid(); // "01M0PSE3E250JQT8AVKQQ71XDX"import { nanoId, cuid2 } from '@readytools/id';
const nid = nanoId(); // "V1StGXR8_Z5jdHi6B-myT"
const cid = cuid2(); // "oyx0325cv6x4vqlsja5s7yd8"Domain-prefixed IDs make logs, APIs, and debugging dramatically clearer.
import { smart } from '@readytools/id';
const userId = smart('usr'); // "usr_7eto6037Z-N5JDsBKKVYl"
const invoiceId = smart('inv', { date: true }); // "inv_20260823_6mY686gs0CYsJnxzeuG90"import { generateToken } from '@readytools/id';
const token = generateToken(32, 'base64url'); // 32-byte cryptographically secure Base64URL string1. Deterministic Testing / Mocking
Stop writing fragile mocks for random IDs. Seed the generator so snapshot tests become 100% reproducible.
import { seed, resetMocks, uuidv4 } from '@readytools/id';
seed(12345); // PRNG is now deterministic
const a = uuidv4(); // Always the same value for this seed
// ... run your tests ...
resetMocks(); // Restore secure Web Crypto generator2. Database Storage Optimizer (BINARY(16))
Storing 36-character UUID strings wastes space and slows indexes. Convert to a compact 16-byte Uint8Array.
import { uuidv7, toBinary, fromBinary } from '@readytools/id';
const binary = toBinary(uuidv7()); // Uint8Array(16)
const uuidStr = fromBinary(binary, 'uuid'); // Restore original string3. Collision Risk Calculator
Calculate exact mathematical collision probability using the Birthday Paradox.
import { collisionRisk } from '@readytools/id';
const risk = collisionRisk(64, 21, 1_000_000); // alphabet length, ID length, expected countimport { isValid, getVersion, extractTimestamp } from '@readytools/id';
isValid('01917f9b-...', 'uuid'); // true
getVersion('01917f9b-...'); // 7
extractTimestamp('01M0PSE3E250JQT8AVKQQ71XDX', 'ulid'); // Date objectGenerate IDs or calculate risk directly from the terminal:
npx @readytools/id uuidv7 npx @readytools/id smart usr npx @readytools/id risk 64 21 1000000
Tested on Node.js v20 (ops/sec — higher is better):
| Generator | Ops/sec | Description |
|---|---|---|
| uuidv4 (native) | ~9,180,000 | Native Crypto direct binding |
| uuidv1 | ~3,890,000 | Time + MAC based |
| snowflake | ~3,880,000 | 64-bit integer generation |
| nanoId | ~3,870,000 | Zero-allocation, zero modulo bias, URL-friendly |
| uuidv7 | ~3,430,000 | Time-sortable UUID for databases |
| generateToken | ~2,670,000 | Cryptographic secret / API key generator |
| cuid2 | ~2,620,000 | Highly secure, 32-bit hashed ID |
| smart | ~2,570,000 | Domain-prefixed Stripe-style IDs |
| ulid | ~2,040,000 | Time-sortable Crockford Base32 |
(Run npm run bench for results on your machine.)
Complete, production-ready documentation is available at:
https://www.readytools.co/docs/id/
The docs cover:
MIT © ReadyTools
Happy coding!
— The ReadyTools Team
Tipo
NuevoFecha
August 24, 2026
Tiempo de lectura
4 min de lectura
Explora los cambios más recientes de ReadyTools.
Opening files, browsing folders, selecting documents, and switching between different storage environments should be smooth, even when dealing with larger
Leer actualización
As a workspace grows, finding the right information becomes increasingly important.
Leer actualización
One of the main ideas behind ReadyTools is that its products shouldn't feel like completely separate tools.
Leer actualización