Kommer snart · Open Source · Modified MIT
Kalkylbladet för människor och agenter.
En open-source kalkylbladsmotor ombyggd i Rust. Dynamiska arrayer, pivottabeller, XLOOKUP — med Python- och Node.js-SDK:er byggda för AI.
SDK-paket publiceras vid lansering. Följ för uppdateringar
Levande kalkylblad som körs i din webbläsare via WebAssembly — inte en skärmdump.
Användningsområden
Byggt för utvecklare och agenter
Bädda in i din app
Lägg till ett fullständigt kalkylblad i vilken webbapp som helst med en React-komponent. Dynamiska arrayer, pivottabeller och 582 funktioner direkt ur lådan.
Kör på en server
Bearbeta XLSX-filer, utvärdera formler och generera rapporter server-side med Node.js- eller Python-SDK:n. Ingen webbläsare behövs.
Driv AI-agenter
Ge LLM:er strukturerad åtkomst till kalkylbladsoperationer. SDK:ns typsäkra API är designat för verktygsanrop — ingen skärmskrapning eller prompt-engineering.
Varför Mog
En komplett kalkylbladsmotor, inte bara en UI-komponent.
Byggt för människor och agenter
Ett strukturerat API som LLM:er kan anropa direkt. Python- och Node.js-SDK:er designade för AI-agentarbetsflöden — ingen skärmskrapning eller makrohack.
- Python SDK via PyO3 för AI-agentarbetsflöden
- Node.js SDK via N-API med nativ prestanda
- Headless server för batchbearbetning
- Verktygsanropsredo API (strukturerad in- och utdata)
Full Excel-kompatibilitet, ombyggd i Rust
582 funktioner, dynamiska arrayer, pivottabeller, XLOOKUP, villkorsstyrd formatering och strukturerade referenser. Inte en delmängd — hela paketet.
- 582 Excel-kompatibla funktioner
- Dynamiska arrayer, XLOOKUP, LAMBDA
- Pivottabeller, villkorsstyrd formatering, datavalidering
- Nativ XLSX-läsning och -skrivning (fullständig OOXML-spec)
Realtid, offline-first, konfliktfri
CRDT-baserat samarbete drivet av Yrs. Fungerar offline, synkar när du är uppkopplad och tappar aldrig data. Ingen komplexitet med operationell transformation.
- CRDT-samarbete via Yrs (Rust)
- Cellidentitetsmodell för konfliktfria formler
- Offline-first med automatisk synkronisering
- Canvas-rendering vid 60fps via binärt kommunikationsprotokoll
Arkitektur
En Rust-motor, alla plattformar
Skrivet en gång i Rust, kompilerat till tre mål. Samma kod i webbläsaren, på en server och i en Python-notebook.
Webbläsare
WebAssembly
Körs i en Web Worker. Noll serveranrop för beräkningar.
Node.js
N-API
Nativa binärer för macOS, Linux och Windows. Ingen WASM-overhead.
Python
PyO3
Nativa Python-bindningar. Använd kalkylbladsformler tillsammans med pandas.
Rust-beräkningskärna
Formler, beroendegraf, pivottabeller, villkorsstyrd formatering och XLSX-parser — allt i Rust. Ett annoterat API genererar bindningar för varje mål.
compute-core
parser, functions, graph, formats,
schema, stats, charts, cf, pivot,
table, fill, solver, collab, wire
Binärt kommunikationsprotokoll
Vyportdata som kompakta binära buffertar, inte JSON. Noll allokeringar per cell. 60fps på stora kalkylblad.
Viewport buffer
36B header + N × 32B cell records
+ string pool + format palette
Mutation patches
Spliced directly into the viewport
buffer — no deserialization step
SDK
Programmatisk åtkomst till allt
En Rust-motor, alla SDK:er. Samma API i Python och 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"]]);
});Byggt med Mog
Redo för ditt projekt
Från AI-agenter till SaaS-produkter till datapipelines. Var bland de första att bygga med Mog.
AI-agenter
Strukturerat kalkylblads-API för LLM-verktygsanrop. Ingen skärmskrapning.
SaaS-produkter
Fullständigt kalkylblad i en React-komponent. Dynamiska arrayer och allt därtill.
Datapipelines
Bearbeta XLSX server-side i Python eller Node.js. Excel krävs inte.
Vanliga frågor
Vad är Mog?
Mog är en open-source kalkylbladsmotor byggd från grunden i Rust. Den tillhandahåller en komplett kalkylbladsruntime — formelutvärdering, beroendehantering, XLSX-parsning, canvas-rendering och realtidssamarbete — som du kan bädda in i webbappar, köra på servrar eller använda från Python och Node.js.
Varför Rust?
Rust ger oss nativ prestanda, minnessäkerhet och möjligheten att kompilera till WebAssembly (webbläsare), N-API (Node.js) och PyO3 (Python) från en enda kodbas. En motor, alla plattformar, inga pauser för skräpinsamling.
Är Mog gratis?
Ja. Mog är open source under Modified MIT-licensen. Använd det i personliga projekt, kommersiella produkter eller SaaS-plattformar.
Hur förhåller sig Mog till befintliga kalkylbladsbibliotek?
De flesta kalkylbladsbibliotek fokuserar antingen på UI-rendering eller filparsning. Mog levererar hela stacken: en Rust-beräkningsmotor med 582 funktioner, canvas-rendering, CRDT-samarbete och nativa SDK:er. Se jämförelsesidan för en detaljerad funktionsmatris.
Är Mog produktionsklart?
Mog är under aktiv utveckling. Kärnmotorn (formler, rendering, samarbete, XLSX) är funktionell och under testning. Vi arbetar mot en open source-release — följ oss för lanseringsuppdateringar.
Fler frågor? Läs mer om Mog
Intresserad av att bygga med Mog?
Mog kommer att vara open source under Modified MIT-licensen.
Get notified when Mog launches