gristlabs/grist-core

Grist Core

把电子表格变成带关系、权限和 Python 公式的数据应用

难度
较难
适合
入门 / 进阶
主要语言
TypeScript
GitHub
11.4k
许可证
Apache-2.0
快照日期
2026年8月10日

先判断要不要学

这个项目值得拆什么?

Grist Core 是 Apache-2.0 许可的关系型电子表格应用,把熟悉的网格编辑与关系数据、表单、图表、细粒度访问控制、协作和 Python 公式结合起来。它适合作为 NocoDB 的开源准入替代:学习者既能研究表格式交互,也能观察文档数据、计算沙箱与多人应用服务如何分层。

  1. 01

    用电子表格这一熟悉入口展示关系、视图、公式与权限如何组成数据应用

  2. 02

    TypeScript 应用层与 Python 公式沙箱形成清楚的信任边界,适合学习安全设计

可以学什么

不只是看代码,而是找到产品的骨架

  • 学界面
  • 学数据库
  • 学用户登录
  • 学产品结构
  • 学部署
  • 学完整项目组织
01

从网格到关系数据应用

观察列类型、引用关系、多个视图和表单如何共享同一文档模型。

app/client · app/common · app/server
02

不可信公式的隔离边界

学习为什么用户可编辑的 Python 公式需要独立沙箱,以及不同运行方式的安全取舍。

sandbox · app/server/lib · README.md
03

数据级访问控制

从用户属性和单元格值出发理解权限规则,而不是只在页面层隐藏按钮。

app/common · app/server · test

三段学习路径

从理解、修改到做出你的版本

0130 分钟先跑通

理解 Grist 与普通电子表格的核心差异。

  1. 浏览 README 的功能与许可证说明
  2. 创建表、引用列和两个视图
  3. 尝试一条 Python 公式

完成标志:能解释结构化列、关系和视图如何让表格成为应用。

022 小时动手改

做一个小型关系数据工作台。

  1. 建立客户与任务两张表
  2. 用引用列连接记录
  3. 添加卡片或图表视图
  4. 创建录入表单
  5. 配置一条只读权限规则

完成标志:得到一个包含关系、录入、展示和权限的内部工具原型。

031 天做变体

读懂一条从编辑到计算再到同步的链路。

  1. 从 app/client 定位单元格编辑动作
  2. 在 common 层识别共享数据结构
  3. 追踪 server 对文档动作的处理
  4. 查看 sandbox 如何执行公式
  5. 为边界情况补一条测试设计

完成标志:得到一份标注客户端、服务端、文档存储和公式沙箱职责的代码地图。

评分解释

每一分都要说清楚为什么

可复刻性15 / 25
15 / 25

可快速搭建业务表,但完整网格与公式引擎不宜从零复刻。

文档与代码清晰度17 / 20
17 / 20

客户端、共享层、服务端和沙箱边界清楚,代码规模仍大。

新手学习价值15 / 20
15 / 20

适合学习数据应用设计,深入内核需要一定基础。

产品完整度15 / 15
15 / 15

关系、视图、表单、权限、协作和自托管链路成熟。

vibe coding 代表性7 / 10
7 / 10

适合让 AI 辅助设计数据模型和界面,但公式与权限必须人工验证。

活跃度5 / 5
5 / 5

仓库持续发布并有清楚的自托管资料。

新颖性5 / 5
5 / 5

电子表格交互与关系数据库、Python 公式的组合很有启发。