通过 WebAssembly 在浏览器中运行的实时电子表格 —— 不是截图。
使用场景
为开发者和 AI Agent 而生
嵌入到你的应用中
一个 React 组件即可在任意 Web 应用中嵌入完整的电子表格。动态数组、数据透视表、582 个函数,开箱即用。
在服务端运行
使用 Node.js 或 Python SDK 处理 XLSX 文件、计算公式、生成报表。无需浏览器。
驱动 AI Agent
为 LLM 提供结构化的电子表格操作接口。SDK 的类型化 API 专为工具调用设计 —— 无需屏幕抓取或提示词工程。
为什么选择 Mog
完整的电子表格引擎, 而不只是一个 UI 组件。
为人类和 AI Agent 而生
LLM 可直接调用的结构化 API。Python 和 Node.js SDK 专为 AI Agent 工作流设计 —— 无需屏幕抓取或宏脚本。
- 基于 PyO3 的 Python SDK,适配 AI Agent 工作流
- 基于 N-API 的 Node.js SDK,原生性能
- 无头服务器模式,支持批量处理
- 工具调用就绪的 API(结构化输入/输出)
完整的 Excel 兼容性,用 Rust 重建
582 个函数、动态数组、数据透视表、XLOOKUP、条件格式和结构化引用。不是子集 —— 是完整实现。
- 582 个 Excel 兼容函数
- 动态数组、XLOOKUP、LAMBDA
- 数据透视表、条件格式、数据验证
- 原生 XLSX 读写(完整 OOXML 规范)
实时、离线优先、无冲突
基于 Yrs 的 CRDT 协作。离线可用,联网自动同步,数据永不丢失。告别 OT 的复杂性。
- 基于 Yrs (Rust) 的 CRDT 协作
- 单元格身份模型,实现无冲突公式
- 离线优先,自动同步
- 基于二进制传输协议的 Canvas 渲染,60fps
架构
一套 Rust 引擎,覆盖所有平台
用 Rust 编写一次,编译到三个目标平台。浏览器、服务器、Python notebook 里运行的是同一套代码。
浏览器
WebAssembly
在 Web Worker 中运行。计算过程零服务器往返。
Node.js
N-API
macOS、Linux 和 Windows 原生二进制文件。无 WASM 开销。
Python
PyO3
原生 Python 绑定。电子表格公式与 pandas 无缝协作。
Rust 计算核心
公式、依赖图、数据透视表、条件格式和 XLSX 解析器 —— 全部用 Rust 实现。一套带注解的 API 自动生成所有目标平台的绑定。
compute-core
parser, functions, graph, formats,
schema, stats, charts, cf, pivot,
table, fill, solver, collab, wire
二进制传输协议
视口数据采用紧凑的二进制缓冲区传输,而非 JSON。每个单元格零内存分配。大型表格下 60fps 流畅渲染。
Viewport buffer
36B header + N × 32B cell records
+ string pool + format palette
Mutation patches
Spliced directly into the viewport
buffer — no deserialization step
SDK
一切皆可编程访问
一套 Rust 引擎,多语言 SDK。Python 和 TypeScript 共享同一套 API。
Python
import mog
wb = mog.create_workbook()
ws = wb.active_sheet()
# Set values and formulas
ws.set_cell("A1", "Revenue")
ws.set_cell("A2", 150000)
ws.set_cell("A3", "=A2 * 1.15")
# Dynamic arrays just work
ws.set_cell("B1", '=FILTER(A1:A3, A1:A3>100000)')
# Convert to pandas DataFrame
wb.calculate()
df = ws.to_dataframe()
wb.save("forecast.xlsx")Node.js
import { createWorkbook } from "@mog-sdk/node";
const wb = await createWorkbook();
const ws = wb.getActiveSheet();
// Set values and formulas
await ws.setCell("A1", "Revenue");
await ws.setCell("A2", 150000);
await ws.setCell("A3", "=A2 * 1.15");
// Structured table references
await ws.tables.add({ range: "A1:A3", name: "Forecast" });
await ws.setCell("B1", "=Forecast[@Revenue]");
// Batch operations into a single undo step
await wb.batch(async () => {
await ws.setRange("C1:C3", [["Q2"], [170000], ["=C2*1.15"]]);
});基于 Mog 构建
为你的项目准备就绪
从 AI Agent 到 SaaS 产品再到数据管道,成为首批使用 Mog 的开发者。
AI Agent
为 LLM 工具调用提供结构化的电子表格 API。无需屏幕抓取。
SaaS 产品
一个 React 组件即可嵌入完整电子表格。动态数组等功能开箱即用。
数据管道
使用 Python 或 Node.js 在服务端处理 XLSX。无需安装 Excel。
常见问题
Mog 是什么?
Mog 是一个用 Rust 从零构建的开源电子表格引擎。它提供完整的电子表格运行时 —— 公式计算、依赖追踪、XLSX 解析、Canvas 渲染和实时协作 —— 可嵌入 Web 应用、部署到服务器,或通过 Python 和 Node.js 调用。
为什么选择 Rust?
Rust 提供原生性能、内存安全,以及从单一代码库编译到 WebAssembly(浏览器)、N-API(Node.js)和 PyO3(Python)的能力。一套引擎,全平台覆盖,零 GC 停顿。
Mog 免费吗?
是的。Mog 基于 Modified MIT 协议开源。个人项目、商业产品或 SaaS 平台均可使用。
Mog 和其他电子表格库相比如何?
大多数电子表格库只专注于 UI 渲染或文件解析。Mog 提供完整技术栈:包含 582 个函数的 Rust 计算引擎、Canvas 渲染、CRDT 协作和原生 SDK。详细功能对比请查看对比页面。
Mog 可以用于生产环境了吗?
Mog 正在积极开发中。核心引擎(公式、渲染、协作、XLSX)已可运行并处于测试阶段。我们正在推进开源发布 —— 关注我们获取最新动态。
还有其他问题? 进一步了解 Mog