@voya-kit/snow-id
重要声明: 本项目 @voya-kit/snow-id 基于的 snowflake-id 进行了导入语法改造与优化。我们不仅保留了原项目的精髓,还全面拥抱了现代JavaScript生态,确保了对 CommonJS (CJS) 和 ECMAScript Modules (ESM) 两种模块化标准的支持。
特性概览
- 时间基底: 利用时间戳作为ID的基础部分,确保ID的有序性和唯一性。
- 高并发友好: 通过机器标识和序列号的设计,支持大规模分布式系统下的高效并行生成。
- 精准控制: 提供自定义机器ID (
mid) 和时间偏移 (offset) 参数,适应多样化的部署环境。
- 兼容性卓越: 支持JavaScript的整数精度限制,生成的ID以字符串形式输出,无缝对接数据库bigint类型。
- 最新语法兼容: 全面升级导入语法,适配现代开发者的习惯与需求。
安装指南
NPM 安装
执行以下命令,即可将 @voya-kit/snow-id 添加到您的项目依赖中:
npm install @voya-kit/snow-id --save
使用教程
模块导入详解
使用 CommonJS (CJS)
对于传统的Node.js应用或者那些仍使用CJS模块系统的项目,您可以这样导入:
const { Snowflake } = require('@voya-kit/snow-id');
const snowflake = new Snowflake(
{ mid: 1,
offset: 0,
}
);
使用 ECMAScript Modules (ESM)
随着JavaScript模块标准的发展,越来越多的新项目倾向于使用ESM。如果您处于这样的开发环境,请使用以下导入语句:
import { Snowflake } from '@voya-kit/snow-id';
const snowflake = new Snowflake({
mid: 1,
offset: 0,
})
生成ID
无论是CJS还是ESM导入方式,生成ID的逻辑保持一致:
const id1 = snowflake.generate();
const id2 = snowflake.generate();
支持CJS或ESM的JavaScript项目中轻松集成并利用 @voya-kit/snow-id 来生成高性能、高可用的唯一标识符。