About

DBFlux 为什么存在

每一个数据库客户端最终都会让你选边站:要么是只说一种引擎方言的快速原生客户端,要么是什么都会说却让你等待的通用客户端。DBFlux 选择第三条路 — 一个对驱动中立的内核、插入其中的驱动,以及一个永远不需要知道任何驱动名字的界面。

这条约束写在代码里,而不是风格指南里。界面通过能力标志和元数据自适应,所以文档存储得到文档视图、时序存储得到范围选择器,而无需对驱动名做任何分支判断。添加一个数据库就是编写一个驱动,而不是给应用打补丁。

长期目标在 README 中说得直白:为你使用的每一个数据库提供一个完全开源的客户端。Rust 和 GPUI 是它保持足够快、值得你切换过来的方式。

原则

  1. 01

    键盘先于指针

    只要一个操作存在,它就有键位绑定和命令面板入口。鼠标是后备,没有任何工作流依赖它。

  2. 02

    界面永远不知道驱动的名字

    类别、查询语言和能力标志决定渲染什么。需要新行为的驱动为内核添加接缝,而不是为界面添加特例。

  3. 03

    致密胜过装饰

    直角、发丝边框、一种强调色、全局等宽字体。屏幕空间属于你的数据。

  4. 04

    没有无记录的执行

    查询、Hook、脚本和 AI 工具调用全部写入同一份审计日志,默认脱敏、只属于你 — 它永不离开这台机器。

它是如何组织的

UI crates六个 crate,零驱动依赖,零按驱动划分的 feature 标志。
App layer注册驱动、解析 RPC 服务、持有连接状态。
Core contractsDbDriver、Connection、capabilities、metadata、language services、query generators。
Drivers十二个以 Rust crate 形式内置;其余一切通过 RPC 驱动协议接入。

完整的 crate 地图与跨 crate 流程见架构指南。若想编写驱动,请从驱动编写指南开始。

维护者

Ignacio Perez,一位使用 Rust 和 C 工作的后端与系统开发者。DBFlux 属于他,其中绝大多数提交也是他完成的。

@0xErwin1 on GitHub →

贡献

欢迎 issue、驱动和文档。贡献指南列出了一个 pull request 在评审前必须通过的检查。

阅读贡献指南 →
Esc
移动 打开Esc 关闭