Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yitter
雪花ID全家桶(SnowFlake IdGenerator)
提交
46328d9e
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
yitter
/
雪花ID全家桶(SnowFlake IdGenerator)
10 个月 前同步成功
通知
201
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
雪
雪花ID全家桶(SnowFlake IdGenerator)
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
46328d9e
编写于
4月 05, 2021
作者:
yitter
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
auto commit
上级
012d9983
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
71 addition
and
40 deletion
+71
-40
C#.NET/README.md
C#.NET/README.md
+2
-2
C/README.md
C/README.md
+1
-1
Go/README.md
Go/README.md
+15
-14
Java/README.md
Java/README.md
+1
-1
Rust/README.md
Rust/README.md
+10
-10
Rust/source/Cargo.lock
Rust/source/Cargo.lock
+1
-1
Rust/source/Cargo.toml
Rust/source/Cargo.toml
+9
-2
Rust/source/README.md
Rust/source/README.md
+23
-0
Rust/source/src/lib.rs
Rust/source/src/lib.rs
+9
-9
未找到文件。
C#.NET/README.md
浏览文件 @
46328d9e
## 运行环境
.NET Standard 2.0+
## 引用
nuget
包
## 引用
nuget
包
```
<PackageReference Include="Yitter.IdGenerator" Version="1.0.*" />
```
...
...
C/README.md
浏览文件 @
46328d9e
# idgenerator
# idgenerator
## 编译说明
...
...
Go/README.md
浏览文件 @
46328d9e
# ❄ idenerator-go
# ❄ idenerator-go
## 介绍
项目更多介绍参照:https://github.com/yitter/idgenerator
## Go环境
1.
SDK,go1.14
2.
启用 Go-Modules
```
go env -w GO111MODULE=on
# Next *ONLY* for China-Users:
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
```
3.
安装方式
## 引用全局库
```
go get -u -v github.com/yitter/idgenerator-go
```
...
...
@@ -40,5 +28,18 @@ idgen.SetIdGenerator(options)
var newId = idgen.NextId()
```
## 关于Go环境
1.
SDK,go1.14
2.
启用 Go-Modules
```
go env -w GO111MODULE=on
# Next *ONLY* for China-Users:
go env -w GOPROXY=https://goproxy.cn,https://goproxy.io,direct
```
## 代码贡献者(按时间顺序)
guoyahao | amuluowin | houseme
Java/README.md
浏览文件 @
46328d9e
## 运行环境
JDK 1.8+
...
...
Rust/README.md
浏览文件 @
46328d9e
# idgenerator
# idgenerator
##
调用示例(Rust)
##
调用示例(Rust)
第1步,
**全局**
初始化(应用程序启动时执行一次):
第1步,
**全局**
初始化(应用程序启动时执行一次):
```
//
创建 IdGeneratorOptions 对象,请在构造函数中输入 WorkerId:
//
创建 IdGeneratorOptions 对象,请在构造函数中输入 WorkerId:
let mut options = IdGeneratorOptions::New(1);
// options.WorkerIdBitLength = 10; // WorkerIdBitLength
默认值6,支持的 WorkerId 最大值为2^6-1,若 WorkerId 超过64,可设置更大的
WorkerIdBitLength
// ......
其它参数设置参考 IdGeneratorOptions 定义,一般来说,只要再设置 WorkerIdBitLength (决定 WorkerId 的最大值)。
// options.WorkerIdBitLength = 10; // WorkerIdBitLength
默认值6,支持的 WorkerId 最大值为2^6-1,若 WorkerId 超过64,可设置更大的 Worker
IdBitLength
// ......
其它参数设置参考 IdGeneratorOptions 定义,一般来说,只要再设置 WorkerIdBitLength (决定 WorkerId 的最大值)。
//
保存参数(必须的操作,否则以上设置都不能生效):
//
保存参数(必须的操作,否则以上设置都不能生效):
YitIdHelper::SetIdGenerator(options);
//
以上初始化过程只需全局一次,且必须在第2步之前设置。
//
以上初始化过程只需全局一次,且必须在第2步之前设置。
```
第2步,生成ID:
第2步,生成ID:
```
//
初始化以后,即可在任何需要生成ID的地方,调用以下方法:
//
初始化以后,即可在任何需要生成ID的地方,调用以下方法:
long newId = YitIdHelper::NextId();
```
...
...
Rust/source/Cargo.lock
浏览文件 @
46328d9e
...
...
@@ -269,7 +269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
[[package]]
name = "yit
idgen
"
name = "yit
er-idgenerator
"
version = "1.0.0"
dependencies = [
"chrono",
...
...
Rust/source/Cargo.toml
浏览文件 @
46328d9e
[package]
name
=
"yit
idgen
"
name
=
"yit
er-idgenerator
"
version
=
"1.0.0"
authors
=
[
"yitter <yitter@126.com>"
]
edition
=
"2018"
license
=
"MIT"
description
=
"Shorter ID and faster generation with a new snowflake drift algorithm. The core is to shorten the ID length, but also can have a very high instantaneous concurrent processing capacity (50W/0.1s), and powerful configuration capacity."
readme
=
"README.md"
homepage
=
"https://github.com/yitter/IdGenerator"
repository
=
"https://github.com/yitter/IdGenerator"
keywords
=
[
"snowflake"
,
"idgenerator"
]
#categories = ["command-line-utilities"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
...
...
@@ -11,7 +18,7 @@ chrono = "0.4.10"
lazy_static
=
"1.4.0"
#simple_redis = "*"
redis
=
"0.20.0"
libc
=
"*"
libc
=
"*"
#actix = "0.9.0"
#actix-web = "2.0"
...
...
Rust/source/README.md
0 → 100644
浏览文件 @
46328d9e
# idgenerator
## 调用示例(Rust)
第1步,
**全局**
初始化(应用程序启动时执行一次):
```
// 创建 IdGeneratorOptions 对象,请在构造函数中输入 WorkerId:
let mut options = IdGeneratorOptions::New(1);
// options.WorkerIdBitLength = 10; // WorkerIdBitLength 默认值6,支持的 WorkerId 最大值为2^6-1,若 WorkerId 超过64,可设置更大的 WorkerIdBitLength
// ...... 其它参数设置参考 IdGeneratorOptions 定义,一般来说,只要再设置 WorkerIdBitLength (决定 WorkerId 的最大值)。
// 保存参数(必须的操作,否则以上设置都不能生效):
YitIdHelper::SetIdGenerator(options);
// 以上初始化过程只需全局一次,且必须在第2步之前设置。
```
第2步,生成ID:
```
// 初始化以后,即可在任何需要生成ID的地方,调用以下方法:
long newId = YitIdHelper::NextId();
```
Rust/source/src/lib.rs
浏览文件 @
46328d9e
...
...
@@ -14,17 +14,17 @@ use libc::{c_char, uint32_t};
use
std
::
ffi
::{
CStr
,
CString
};
use
std
::
str
;
lazy_static!
{
//
static ref TestValue: Vec<i32> = vec!(0);
//
static ref MAP: HashMap<u32, String> = HashMap::new();
}
//
lazy_static! {
//
static ref TestValue: Vec<i32> = vec!(0);
//
static ref MAP: HashMap<u32, String> = HashMap::new();
//
}
//
//
#[export_name = "SetIdGenerator"]
//
#[no_mangle]
//
pub extern "C" fn SetIdGenerator(options: IdGeneratorOptions) {
//
YitIdHelper::SetIdGenerator(options);
//
}
// #[export_name = "SetIdGenerator"]
#[no_mangle]
pub
extern
"C"
fn
SetIdGenerator
(
options
:
IdGeneratorOptions
)
{
YitIdHelper
::
SetIdGenerator
(
options
);
}
#[no_mangle]
pub
extern
"C"
fn
SetOptions
(
workerId
:
u32
,
workerIdBitLength
:
u8
,
seqBitLength
:
u8
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录