Скоро · Open Source · Modified MIT
Электронные таблицы для людей и AI-агентов.
Open-source движок электронных таблиц, написанный с нуля на Rust. Динамические массивы, сводные таблицы, XLOOKUP — с SDK для Python и Node.js, созданными для ИИ.
Пакеты SDK будут опубликованы при запуске. Следите за обновлениями
Живая таблица в вашем браузере через WebAssembly — не скриншот.
Сценарии использования
Создан для разработчиков и AI-агентов
Встраивайте в приложение
Добавьте полноценные таблицы в любое веб-приложение одним React-компонентом. Динамические массивы, сводные таблицы и 582 функции из коробки.
Запускайте на сервере
Обрабатывайте XLSX-файлы, вычисляйте формулы и генерируйте отчёты на сервере с помощью SDK для Node.js или Python. Браузер не нужен.
Питайте AI-агентов
Дайте LLM структурированный доступ к операциям с таблицами. Типизированный API SDK спроектирован для tool-use — без скрейпинга экрана и промпт-инжиниринга.
Почему Mog
Полноценный движок таблиц, а не просто UI-компонент.
Создан для людей и AI-агентов
Структурированный API, который LLM могут вызывать напрямую. SDK для Python и Node.js, спроектированные для рабочих процессов AI-агентов — без скрейпинга экрана и хаков с макросами.
- Python SDK через PyO3 для рабочих процессов AI-агентов
- Node.js SDK через N-API с нативной производительностью
- Headless-сервер для пакетной обработки
- API, готовый для tool-use (структурированный ввод/вывод)
Полная совместимость с Excel, заново на Rust
582 функции, динамические массивы, сводные таблицы, XLOOKUP, условное форматирование и структурированные ссылки. Не подмножество — полная реализация.
- 582 функции, совместимые с Excel
- Динамические массивы, XLOOKUP, LAMBDA
- Сводные таблицы, условное форматирование, валидация данных
- Нативный парсинг и запись XLSX (полная спецификация OOXML)
Реального времени, offline-first, без конфликтов
Совместная работа на основе CRDT через Yrs. Работает офлайн, синхронизируется при подключении, никогда не теряет данные. Без сложностей operational transform.
- CRDT-коллаборация через Yrs (Rust)
- Модель идентичности ячеек для бесконфликтных формул
- Offline-first с автоматической синхронизацией
- Рендеринг на canvas при 60fps через бинарный протокол
Архитектура
Один движок на Rust — любая платформа
Написан один раз на Rust, компилируется под три цели. Один и тот же код в браузере, на сервере и в Python-ноутбуке.
Браузер
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 для каждого языка. Одинаковый API в Python и TypeScript.
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-агентов до SaaS-продуктов и data-пайплайнов. Будьте среди первых, кто начнёт строить на Mog.
AI-агенты
Структурированный API для вызова из LLM. Никакого скрейпинга экрана.
SaaS-продукты
Полноценные таблицы в одном React-компоненте. С динамическими массивами и всем остальным.
Data-пайплайны
Обработка XLSX на сервере в Python или Node.js. Без Excel.
Часто задаваемые вопросы
Что такое Mog?
Mog — это open-source движок электронных таблиц, написанный с нуля на Rust. Он предоставляет полноценную среду выполнения: вычисление формул, отслеживание зависимостей, парсинг XLSX, рендеринг на canvas и совместную работу в реальном времени. Встраивайте в веб-приложения, запускайте на серверах или используйте из Python и Node.js.
Почему Rust?
Rust даёт нативную производительность, безопасность памяти и возможность компиляции в WebAssembly (браузер), N-API (Node.js) и PyO3 (Python) из единой кодовой базы. Один движок, любая платформа, ноль пауз на сборку мусора.
Mog бесплатный?
Да. Mog — open source под лицензией Modified MIT. Используйте в личных проектах, коммерческих продуктах или SaaS-платформах.
Чем Mog отличается от существующих библиотек для таблиц?
Большинство библиотек фокусируются либо на рендеринге UI, либо на парсинге файлов. Mog даёт полный стек: вычислительный движок на Rust с 582 функциями, рендеринг на canvas, CRDT-коллаборацию и нативные SDK. Подробная таблица сравнения — на странице сравнения.
Mog готов к продакшену?
Mog в активной разработке. Ядро движка (формулы, рендеринг, совместная работа, XLSX) функционирует и тестируется. Мы движемся к open-source релизу — подписывайтесь, чтобы не пропустить запуск.
Остались вопросы? Узнайте больше о Mog
Хотите создавать с Mog?
Mog будет open source под лицензией Modified MIT.
Get notified when Mog launches