Sparkdo.IdGeneration 1.0.2

dotnet add package Sparkdo.IdGeneration --version 1.0.2
                    
NuGet\Install-Package Sparkdo.IdGeneration -Version 1.0.2
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sparkdo.IdGeneration" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.IdGeneration" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Sparkdo.IdGeneration" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sparkdo.IdGeneration --version 1.0.2
                    
#r "nuget: Sparkdo.IdGeneration, 1.0.2"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Sparkdo.IdGeneration@1.0.2
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sparkdo.IdGeneration&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Sparkdo.IdGeneration&version=1.0.2
                    
Install as a Cake Tool

Sparkdo.IdGeneration

Sparkdo 框架的 ID 生成库,提供多种 ID 生成策略。

功能特性

  • 雪花算法 (Snowflake): 基于 Twitter 的雪花算法实现,生成全局唯一的 Long 类型 ID
  • 顺序 GUID: 生成顺序 GUID,提高数据库索引性能
  • 字符串 ID: 生成基于 Base32 编码的字符串 ID,避免容易混淆的字符
  • 可配置: 支持通过配置文件自定义各种参数

安装

dotnet add package Sparkdo.IdGeneration

核心组件

1. 雪花算法 ID 生成器

基于 Twitter 的雪花算法实现,支持以下特性:

  • 支持多数据中心部署
  • 支持毫秒级和秒级时间戳
  • 支持漂移算法和传统算法
  • 可配置机器码位长、序列数位长等参数

2. 顺序 GUID 生成器

生成顺序 GUID,可以提高数据库索引性能:

  • 支持三种顺序类型:SequentialAsString、SequentialAsBinary、SequentialAtEnd
  • 可配置默认顺序类型

3. 字符串 ID 生成器

生成基于 Base32 编码的字符串 ID:

  • 使用 Crockford Base32 编码,避免容易混淆的字符 (0, O, I, L)
  • 生成固定长度的 26 位字符串 ID

配置文件示例:

{
  "Sparkdo": {
    "IdGeneration": {
      "SnowflakeId": {
        "WorkerId": 1,
        "WorkerIdBitLength": 6,
        "SeqBitLength": 6
      }
    }
  }
}

使用 ID 生成器:

public class MyService
{
    private readonly ILongIdGenerator _longIdGenerator;
    private readonly IGuidGenerator _guidGenerator;
    private readonly IStringIdGenerator _stringIdGenerator;

    public MyService(
        ILongIdGenerator longIdGenerator,
        IGuidGenerator guidGenerator,
        IStringIdGenerator stringIdGenerator)
    {
        _longIdGenerator = longIdGenerator;
        _guidGenerator = guidGenerator;
        _stringIdGenerator = stringIdGenerator;
    }

    public void GenerateIds()
    {
        // 生成雪花 ID
        long snowflakeId = _longIdGenerator.Create();

        // 生成顺序 GUID
        Guid sequentialGuid = _guidGenerator.Create();

        // 生成字符串 ID
        string stringId = _stringIdGenerator.Create();
    }
}

配置选项

雪花算法配置 (SparkdoSnowflakeIdOptions)

  • Method: 雪花计算方法(1-漂移算法|2-传统算法),默认1
  • BaseTime: 基础时间,不能超过当前系统时间
  • WorkerId: 机器码,必须由外部设定
  • WorkerIdBitLength: 机器码位长,默认值6
  • SeqBitLength: 序列数位长,默认值6
  • MaxSeqNumber: 最大序列数,默认值0(表示取最大值)
  • MinSeqNumber: 最小序列数,默认值5
  • TopOverCostCount: 最大漂移次数,默认2000
  • DataCenterId: 数据中心ID,默认0
  • DataCenterIdBitLength: 数据中心ID长度,默认0
  • TimestampType: 时间戳类型(0-毫秒,1-秒),默认0

顺序 GUID 配置 (SequentialGuidGeneratorOptions)

  • DefaultSequentialGuidType: 默认顺序 GUID 类型
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Sparkdo.IdGeneration:

Package Downloads
Sparkdo.EventBus

Sparkdo 事件总线实现库,提供本地和分布式事件发布/订阅功能

Sparkdo.Ddd.Domain

Sparkdo DDD 领域模型库,提供领域驱动设计的核心组件实现

Sparkdo.BackgroundJobs

Sparkdo 后台作业库,提供后台任务调度和执行功能实现

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 244 4/27/2026
1.0.2-preview.5 90 4/15/2026
1.0.2-preview.4 96 2/8/2026
1.0.2-preview.3 98 2/1/2026
1.0.2-preview.2 116 1/31/2026
1.0.2-preview.1 193 12/4/2025
1.0.1 1,059 11/27/2025
1.0.0 1,002 11/25/2025
1.0.0-preview.5 143 10/24/2025