În curând · Open Source · Modified MIT
Foaia de calcul pentru oameni și agenți.
Un motor de foi de calcul open source, rescris în Rust. Array-uri dinamice, tabele pivot, XLOOKUP — cu SDK-uri pentru Python și Node.js, gândite pentru AI.
Pachetele SDK vor fi publicate la lansare. Urmărește pentru noutăți
Foaie de calcul live în browser via WebAssembly — nu un screenshot.
Cazuri de utilizare
Construit pentru dezvoltatori și agenți
Integrează în aplicația ta
Adaugă un spreadsheet complet în orice aplicație web cu o singură componentă React. Array-uri dinamice, tabele pivot și 582 de funcții din start.
Rulează pe server
Procesează fișiere XLSX, evaluează formule și generează rapoarte pe server cu SDK-ul Node.js sau Python. Fără browser.
Alimentează agenți AI
Oferă LLM-urilor acces structurat la operațiuni cu foi de calcul. API-ul tipizat al SDK-ului este gândit pentru tool-use — fără screen scraping sau prompt engineering.
De ce Mog
Un motor complet de foi de calcul, nu doar o componentă UI.
Construit pentru oameni și agenți
Un API structurat pe care LLM-urile îl pot apela direct. SDK-uri pentru Python și Node.js gândite pentru fluxuri de lucru cu agenți AI — fără screen scraping sau hack-uri cu macrocomenzi.
- SDK Python via PyO3 pentru fluxuri cu agenți AI
- SDK Node.js via N-API cu performanță nativă
- Server headless pentru procesare în batch
- API pregătit pentru tool-use (input/output structurat)
Compatibilitate completă cu Excel, rescris în Rust
582 de funcții, array-uri dinamice, tabele pivot, XLOOKUP, formatare condiționată și referințe structurate. Nu un subset — varianta completă.
- 582 de funcții compatibile cu Excel
- Array-uri dinamice, XLOOKUP, LAMBDA
- Tabele pivot, formatare condiționată, validare date
- Parsare și scriere nativă XLSX (spec OOXML complet)
Real-time, offline-first, fără conflicte
Colaborare bazată pe CRDT, alimentată de Yrs. Funcționează offline, sincronizează când te conectezi, nu pierde niciodată date. Fără complexitatea operational transform.
- Colaborare CRDT via Yrs (Rust)
- Model de identitate celulă pentru formule fără conflicte
- Offline-first cu sincronizare automată
- Randare canvas la 60fps via protocol binar de comunicare
Arhitectură
Un singur motor Rust, orice platformă
Scris o dată în Rust, compilat pentru trei ținte. Același cod în browser, pe server și într-un notebook Python.
Browser
WebAssembly
Rulează într-un Web Worker. Zero round-trip-uri către server pentru calcule.
Node.js
N-API
Binare native pentru macOS, Linux și Windows. Fără overhead de WASM.
Python
PyO3
Binding-uri native pentru Python. Folosește formule de foi de calcul alături de pandas.
Nucleu de calcul în Rust
Formule, graf de dependențe, tabele pivot, formatare condiționată și parser XLSX — totul în Rust. Un singur API adnotat generează binding-uri pentru fiecare țintă.
compute-core
parser, functions, graph, formats,
schema, stats, charts, cf, pivot,
table, fill, solver, collab, wire
Protocol binar de comunicare
Datele viewport ca buffere binare compacte, nu JSON. Zero alocări per celulă. 60fps pe foi mari.
Viewport buffer
36B header + N × 32B cell records
+ string pool + format palette
Mutation patches
Spliced directly into the viewport
buffer — no deserialization step
SDK
Acces programatic la tot
Un singur motor Rust, orice SDK. Același API în Python și 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"]]);
});Construit cu Mog
Pregătit pentru proiectul tău
De la agenți AI la produse SaaS și pipeline-uri de date. Fii printre primii care construiesc cu Mog.
Agenți AI
API structurat pentru tool-use cu LLM-uri. Fără screen scraping.
Produse SaaS
Un spreadsheet complet într-o singură componentă React. Cu array-uri dinamice și tot ce urmează.
Pipeline-uri de date
Procesează fișiere XLSX pe server în Python sau Node.js. Nu ai nevoie de Excel.
Întrebări frecvente
Ce este Mog?
Mog este un motor de foi de calcul open source, rescris de la zero în Rust. Oferă un runtime complet — evaluare de formule, urmărirea dependențelor, parsare XLSX, randare canvas și colaborare în timp real — pe care îl poți integra în aplicații web, rula pe servere sau folosi din Python și Node.js.
De ce Rust?
Rust ne oferă performanță nativă, siguranță de memorie și posibilitatea de a compila pentru WebAssembly (browser), N-API (Node.js) și PyO3 (Python) dintr-o singură bază de cod. Un singur motor, orice platformă, zero pauze de garbage collection.
Este Mog gratuit?
Da. Mog este open source sub licența Modified MIT. Îl poți folosi în proiecte personale, produse comerciale sau platforme SaaS.
Cum se compară Mog cu alte librării de foi de calcul?
Majoritatea librăriilor de foi de calcul se concentrează fie pe randare UI, fie pe parsarea fișierelor. Mog oferă tot stack-ul: un motor de calcul în Rust cu 582 de funcții, randare canvas, colaborare CRDT și SDK-uri native. Vezi pagina de comparații pentru o matrice detaliată de funcționalități.
Este Mog pregătit pentru producție?
Mog este în dezvoltare activă. Motorul de bază (formule, randare, colaborare, XLSX) este funcțional și în testare. Lucrăm spre o lansare open source — urmărește-ne pentru noutăți.
Ai mai multe întrebări? Citește mai mult despre Mog
Vrei să construiești cu Mog?
Mog va fi open source sub licența Modified MIT.
Get notified when Mog launches