大家好,这篇文章主要是来说明下 NutsDB v0.10.0 发布的情况。Nutsdb 是一个纯 Go 语言开发 KV 引擎,支持类似 redis 的数据结构如 list 、set 、zset 。
原文地址
https://mp.weixin.qq.com/s/REle4BrBr962c376BIwxFA
项目地址
https://github.com/nutsdb/nutsdb 欢迎 star 关注我们。目前项目已经累计了 2300+star 。
目前主要使用场景:
- 嵌入式应用,用于存储定时间段的数据(已有人用在生产)
- 存储 Meta 信息(例子: https://github.com/cloud-barista/cb-store )
- 加密存储(例子: https://github.com/jrapoport/chestnut )
- 本地队列(已有人用在生产)
- 本地缓存
github 上统计的依赖 nutsdb 的开源项目:
https://github.com/nutsdb/nutsdb/network/dependents?package_id=UGFja2FnZS0yMjY0ODU0MDM5
本次 v0.10.0 发布的主要改动
非常感谢参与贡献的小伙伴,我把相关 PR (#PR 编号)贡献的小伙伴的 github 名放在后面了(类似 @xxx )。
本次改动主要分以下几类(详见: https://github.com/nutsdb/nutsdb/issues/193 ):
1 、bug 的修复
list 数据结构 count 为负号的边界处理(#183 )@andrewhzy
2 、新功能
- 支持 LRemByIndex API (#174) @NailCui
- 增加 LKeys SKeys ZKeys API 。这个特性支持对 key 做正则匹配,可以非常方便的扫描出你需要的 key ,*支持全量的扫描,非常实用。(#175 ) @NailCui
- 增加 Iterator API (HintKeyAndRAMIdxMode 和 HintKeyValAndRAMIdxMode 这两个模式下支持),之前的 range 支持是对扫描结果返回,这次外国小哥带来了迭代器的方式。(#191 )@zeina1i
3 、重构
- graceful options parameters 。使用选项模式(#185 )@Nailcui
4 、单测
- Add rwmanager fileio test (#170 ) @zeina1i
- Improve code coverage about list (#183) @andrewhzy
- Test coverage improvement for inmemory (#187) @andrewhzy
5 、文档
- A few corrections in ReadME file (#171) @kwakubiney
整个 v0.10.0 的迭代的始末
-
1 、首先会发起一个 proposal ,即一些提议
-
2 、然后发起报名
-
3 、报名之后领取相应的任务来做
报名的人员,我们会在每周发起一次讨论,主要是同步下进度和遇到的问题等。
整个过程是透明和可追溯的,所以自己的贡献,别人都看得到的,不要吝啬你的贡献哈。
新的 proposal 提议来了
这次提议 2 个部分:
proposal 的 issue 已经建立: https://github.com/nutsdb/proposal/issues/4
快来报名吧!!!
nutsdb v0.11.0 提议
v0.11.0 马上也要开始了,有兴趣的可以直接在 issue 中回复报名,或者加群联系我报名参与。后面会根据实际情况做调整。
难度:单测类 < 功能类 < 性能类(可以按照自己的情况来选择)
1 、单测类
提高单测覆盖率,接着 v0.10.0 版本的
说明下关于第一点的覆盖率,可以多人同时报名参与,因为需要拆分下。
2 、功能类
目前 open 的 issue 挑选一些,方便落地的&也准备了一些有难度的可选,https://github.com/nutsdb/nutsdb/issues
内存模式相比非内存模式,有一些功能缺失比如:内存模式下没有 PrefixScan nutsdb#188 增加支持 IterateBuckets 正则匹配(可视化项目需要) Add support for IterateBuckets regularized matching nutsdb#194 HintBPTSparseIdxMode 支持正向迭代(较难,可选) HintKeyValAndRAMIdxMode 、HintKeyAndRAMIdxMode 支持反向迭代(较难,可选)
3 、性能类
关于有人提出提高 db 的启动时间(可选)
nutsweb v0.1.0 提议
nutsweb 项目争取 0.1.0 版本能实现基础的查询功能。
nutsweb这个项目主要是对 nutsdb 提供可视化的能力和nutshttp(提供 nutsdb http 访问的能力)配合使用。
目前有一个 PR (#1 )初始化项目( init project with Vite + React + TypeScript )) @jukanntenn 贡献的。希望能招募到人,开发 v0.1.0 。
招募开发者
目前 NutsDB 开发者群有 30 人了(这里面都是意向开发者或者能提供宝贵意见的人)。
贡献方向:
- 1 、数据库引擎方向
- 2 、工具生态如 cli 、可视化工具等
- 3 、单测覆盖率、文档建设等 NutsDB 发展还很早期,等你的加入,希望你有热情,有意愿,有学习力,有开源精神,愿意贡献项目。
加群
这个群主要交流 Go 语言&nutsdb&其他技术相关的。如果二维码过期,请访问这个链接
