Ichauya Nguva Pfupi · Open Source · Modified MIT
Spreadsheet yevanhu nevamiririri.
Injini yespredsheet ye open-source yakavakwazve muRust. Dynamic arrays, pivot tables, XLOOKUP — neSdk dzePython neNode.js dzakagadzirirwa AI.
Zviteshi zveSdk zvichapapurwa painangurwa. Tevera kuti uzive zvitsva
Spreadsheet inoshanda mubrowser yako kuburikidza neWebAssembly — kwete screenshot.
Mashandisiro
Yakavakwa nevagadziri nevamiririri
Isanganisa mune app yako
Isanganisa spreadsheet yakazara mune app ipi neipi yewebhu necomponent imwe yeReact. Dynamic arrays, pivot tables, nemabasa 582 kubva pakutanga.
Ishandise pa server
Gadzirisa mafaera eXLSX, ongorora maformula, uye gadzira mireport pa server neSdk yeNode.js kana Python. Hapana browser inodikanwa.
Simbisa vamiririri veAI
Pa LLMs nzira yakagadziridzwa yekuwana mashandiro espredsheet. API yakanyorwa kwazvo yeSdk yakagadzirirwa kushandiswa setariro — hapana screen scraping kana prompt engineering.
Nei Mog
Injini yespredsheet yakazara, kwete component yeUI chete.
Yakavakwa yevanhu nevamiririri
API yakagadziridzwa iyo LLMs inogona kushanda nayo zvakananga. SDK dzePython neNode.js dzakagadzirirwa mafambiro evamiririri veAI — hapana screen scraping kana macro hacks.
- Python SDK kuburikidza nePyO3 yemafambiro evamiririri veAI
- Node.js SDK kuburikidza neN-API ine kushanda kwekuzvarwa
- Server isina musoro yekugadzirisa zvizhinji
- API yakagadzirirwa kushandiswa setariro (input/output yakagadziridzwa)
Kufanana kwakazara neExcel, yakavakwazve muRust
Mabasa 582, dynamic arrays, pivot tables, XLOOKUP, conditional formatting, uye structured references. Kwete chikamu — chinhu chaicho.
- Mabasa 582 anofanana neExcel
- Dynamic arrays, XLOOKUP, LAMBDA
- Pivot tables, conditional formatting, data validation
- Kuread nekunyora XLSX kwekuzvarwa (spec yose yeOOXML)
Nguva chaiyo, offline-first, isina zvipesano
Kushanda pamwe kunoshandiswa neCRDT kunosimbiswa naYrs. Inoshanda offline, inosynchronise inosangana, haigaridzi data. Hapana kuomarara kwekushandiswa kweoperational transform.
- CRDT kushanda pamwe kuburikidza naYrs (Rust)
- Nzira yekuziva cell yemaformula asina zvipesano
- Offline-first ine synchronise otomatiki
- Canvas rendering pa60fps kuburikidza nebinary wire protocol
Architecture
Injini imwe yeRust, parunako rwose
Yakanyorwa kamwe muRust, yakacompilwa kutargets nhatu. Kodhi imwe chete mubrowser, pa server, uye mune notebook yePython.
Browser
WebAssembly
Inoshanda muWeb Worker. Hapana round-trips dzeserver pakucomputer.
Node.js
N-API
Mabinary ekuzvarwa emacOS, Linux, neWindows. Hapana WASM overhead.
Python
PyO3
Mabindings ekuzvarwa ePython. Shandisa maformula espredsheet pamwe nepandas.
Rust compute core
Maformula, dependency graph, pivot tables, conditional formatting, neXLSX parser — zvose muRust. API imwe yakacherekedza inogadzira mabindings kune target yose.
compute-core
parser, functions, graph, formats,
schema, stats, charts, cf, pivot,
table, fill, solver, collab, wire
Binary wire protocol
Data yeViewport semabuffer akapfupika ebinary, kwete JSON. Hapana allocations pacell. 60fps mashiti makuru.
Viewport buffer
36B header + N × 32B cell records
+ string pool + format palette
Mutation patches
Spliced directly into the viewport
buffer — no deserialization step
SDK
Kuwana zvinhu zvose nzira yechirongwa
Injini imwe yeRust, SDK dzose. API imwe muPython neTypeScript.
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"]]);
});Yakavakwa NeMog
Yakagadzirira chirongwa chako
Kubva kune vamiririri veAI kusvika kuzvigadzirwa zveSaaS kusvika kumapipeline edata. Iva mumwe wekutanga kuvaka neMog.
Vamiririri veAI
API yespredsheet yakagadziridzwa yekushandiswa neLLM. Hapana screen scraping.
Zvigadzirwa zveSaaS
Spreadsheet yakazara mune component imwe yeReact. Dynamic arrays nezvose.
Mapipeline edata
Gadzirisa mafaera eXLSX pa server muPython kana Node.js. Hapana Excel inodikanwa.
Mibvunzo inobvunzwa nguva zhinji
Chii chiMog?
Mog injini yespredsheet ye open-source yakavakwazve kubva pasi muRust. Inopa runtime yakazara yespredsheet — kuongorora maformula, kutevera zvinobatana, kuread XLSX, canvas rendering, nekushanda pamwe nguva chaiyo — iyo unogona kuisanganisa mune app dzewebhu, kumhanyisa pa server, kana kushandisa kubva muPython neNode.js.
Nei Rust?
Rust inotipa kushanda kwekuzvarwa, kuchengetedzeka kwememorari, uye kugona kucompila kuWebAssembly (browser), N-API (Node.js), nePyO3 (Python) kubva codebase imwe chete. Injini imwe, parunako rwose, hapana kumiriswa kwekugadzirisa marara.
Mog inobhadharwa here?
Kwete. Mog ndiyo open source pasi pelaisensa yeModified MIT. Ishandise muchirongwa chako chako, zvigadzirwa zvekutengesha, kana mapuratifomo eSaaS.
Mog inoenzaniswa sei nemaraibhurari espredsheet aripo?
Maraibhurari mazhinji espredsheet anotarira kana UI rendering kana kuread mafaera. Mog inopa stack yose: injini yeRust nekucomputer inane mabasa 582, canvas rendering, CRDT kushanda pamwe, neSDK dzekuzvarwa. Ona peji rekuenzanisa kune matrix yakadzama yezvinhu.
Mog yakagadzirira kushandiswa pachigadzirwa?
Mog iripo muchigadzirwa. Injini huru (maformula, rendering, kushanda pamwe, XLSX) inoshanda uye iri muedzo. Tiri kushanda kuenda kuburitswa kwe open-source — titevere kuti uzive nezvekunangurwa.
Une mibvunzo imwe? Verenga zvimwe nezve Mog
Une chido chekuvaka neMog?
Mog ichave open source pasi pelaisensa yeModified MIT.
Get notified when Mog launches