3 分•作者: anigbrowl•大约 2 个月前
返回首页
最新
2 分•作者: jeffreyfate•大约 2 个月前
主要对产品和工程感兴趣
2 分•作者: emn4tor•大约 2 个月前
各位 HN 的朋友们,我想问问你们完成了哪些让你们觉得“我真的做出了很酷的东西”的项目?我正在寻找一些革命性的,或者仅仅是酷炫的代码仓库(REPOs)或工具,可以去看看,分享给我吧 :)
3 分•作者: DatCodeMania•大约 2 个月前
1 分•作者: 1659447091•大约 2 个月前
1 分•作者: binyu•大约 2 个月前
1 分•作者: sickmate•大约 2 个月前
1 分•作者: meshintel•大约 2 个月前
1 分•作者: hewkaiba•大约 2 个月前
1 分•作者: xyzzy_plugh•大约 2 个月前
1 分•作者: kristianp•大约 2 个月前
1 分•作者: grork•大约 2 个月前
2 分•作者: herbertl•大约 2 个月前
1 分•作者: javatuts•大约 2 个月前
9 分•作者: raphlinus•大约 2 个月前
3 分•作者: askhatsaiapov•大约 2 个月前
它本质上是一个可索引的 BSON 数组,支持查询监听、复制和基本的崩溃恢复。
在我做个人项目时,我一直需要一种简单的存储方式,能够只使用一个文件。然而,SQLite 及其模式和迁移总让我觉得麻烦,对于单个文件数据库来说,这似乎有点大材小用,但迁移却需要一整套文件夹。JSON 文件需要一次性全部加载,对于像微服务这样需要管理自身状态的、体量不大但内容丰富的场景,这会增加启动时间成本。
因此,最初的想法是“一个可索引且可部分加载的 JSON 对象数组”。
从一开始我就用 Zig 语言编写它,这与我其他项目经常更换实现语言不同,原因是我希望它能在尽可能多的地方使用。所以它处于 C/C++、Rust 和 Zig 的层面。C 语言很棒,但我确实不喜欢它们。经过初步尝试,Rust 感觉过于复杂,因此通过排除法,我选择了 Zig 语言。
我为此投入了大约一年的时间,期间我一直在学习 Zig,重新学习内存管理,并添加新功能。这段时间我主要将其与 SQLite 进行比较并从中学习,最终,经过调优,我认为其性能对我来说已经足够接近了(至少在我笔记本上的非常基础的基准测试中)。
现在,它已经成为我个人使用的微型引擎,我通过 Flutter 插件在我的移动应用中使用它,并在我的小型后端中使用 Bun FFI / Node 原生模块。
如果它能解决其他人的痛点,那将是极好的。我很乐意回答任何问题。
2 分•作者: helloahmed1•大约 2 个月前
2 分•作者: petethomas•大约 2 个月前
3 分•作者: petethomas•大约 2 个月前
3 分•作者: vincenfer•大约 2 个月前