출시 예정 · 오픈소스 · Modified MIT
사람과 AI 에이전트를 위한 스프레드시트.
Rust로 처음부터 다시 만든 오픈소스 스프레드시트 엔진. 동적 배열, 피벗 테이블, XLOOKUP — AI를 위해 설계된 Python 및 Node.js SDK.
SDK 패키지는 출시 시 공개됩니다. 업데이트 소식 받기
WebAssembly로 브라우저에서 실행되는 실제 스프레드시트 — 스크린샷이 아닙니다.
활용 사례
개발자와 AI 에이전트를 위해 만들었습니다
앱에 임베드
하나의 React 컴포넌트로 완전한 스프레드시트를 웹 앱에 추가하세요. 동적 배열, 피벗 테이블, 582개 함수를 바로 사용할 수 있습니다.
서버에서 실행
Node.js 또는 Python SDK로 XLSX 파일 처리, 수식 평가, 보고서 생성을 서버 사이드에서. 브라우저 불필요.
AI 에이전트 구동
LLM에게 스프레드시트 작업에 대한 구조화된 접근을 제공하세요. SDK의 타입이 명시된 API는 도구 호출을 위해 설계되었습니다 — 화면 스크래핑이나 프롬프트 엔지니어링 불필요.
왜 Mog인가
UI 컴포넌트가 아닌 완전한 스프레드시트 엔진.
사람과 AI 에이전트를 위해 설계
LLM이 직접 호출할 수 있는 구조화된 API. AI 에이전트 워크플로를 위해 설계된 Python 및 Node.js SDK — 화면 스크래핑이나 매크로 해킹 불필요.
- PyO3 기반 Python SDK로 AI 에이전트 워크플로 지원
- 네이티브 성능의 N-API 기반 Node.js SDK
- 배치 처리를 위한 헤드리스 서버
- 도구 호출에 최적화된 API (구조화된 입출력)
완벽한 Excel 호환성, Rust로 재구축
582개 함수, 동적 배열, 피벗 테이블, XLOOKUP, 조건부 서식, 구조적 참조. 부분 구현이 아닌 완전한 스프레드시트.
- 582개 Excel 호환 함수
- 동적 배열, XLOOKUP, LAMBDA
- 피벗 테이블, 조건부 서식, 데이터 유효성 검사
- 네이티브 XLSX 파싱 및 쓰기 (전체 OOXML 스펙)
실시간, 오프라인 우선, 충돌 없는 동기화
Yrs 기반 CRDT 협업. 오프라인에서도 작동하고, 연결되면 자동 동기화되며, 데이터가 절대 유실되지 않습니다. OT(Operational Transform)의 복잡성이 없습니다.
- Yrs (Rust) 기반 CRDT 협업
- 충돌 없는 수식을 위한 셀 아이덴티티 모델
- 오프라인 우선 설계 + 자동 동기화
- 바이너리 와이어 프로토콜로 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. 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 에이전트, SaaS 제품, 데이터 파이프라인까지. Mog로 가장 먼저 만들어 보세요.
AI 에이전트
LLM 도구 호출을 위한 구조화된 스프레드시트 API. 화면 스크래핑 불필요.
SaaS 제품
하나의 React 컴포넌트로 완전한 스프레드시트를 구현. 동적 배열까지 모두 지원.
데이터 파이프라인
Python 또는 Node.js로 서버에서 XLSX 처리. Excel 설치 불필요.
자주 묻는 질문
Mog가 뭔가요?
Mog는 Rust로 처음부터 다시 만든 오픈소스 스프레드시트 엔진입니다. 수식 평가, 의존성 추적, XLSX 파싱, 캔버스 렌더링, 실시간 협업 등 완전한 스프레드시트 런타임을 제공하며, 웹 앱에 임베드하거나 서버에서 실행하거나 Python 및 Node.js에서 사용할 수 있습니다.
왜 Rust인가요?
Rust는 네이티브 성능, 메모리 안전성, 그리고 하나의 코드베이스에서 WebAssembly(브라우저), N-API(Node.js), PyO3(Python)로 컴파일할 수 있는 능력을 제공합니다. 하나의 엔진으로 모든 플랫폼을 지원하며, 가비지 컬렉션 멈춤이 없습니다.
Mog는 무료인가요?
네. Mog는 Modified MIT 라이선스의 오픈소스입니다. 개인 프로젝트, 상용 제품, SaaS 플랫폼 등 어디서든 사용할 수 있습니다.
기존 스프레드시트 라이브러리와 비교하면 어떤가요?
대부분의 스프레드시트 라이브러리는 UI 렌더링이나 파일 파싱 중 하나에만 집중합니다. Mog는 풀 스택을 제공합니다: 582개 함수를 갖춘 Rust 연산 엔진, 캔버스 렌더링, CRDT 협업, 네이티브 SDK까지. 자세한 기능 비교는 비교 페이지를 참고하세요.
Mog는 프로덕션에서 사용할 수 있나요?
Mog는 현재 활발히 개발 중입니다. 코어 엔진(수식, 렌더링, 협업, XLSX)은 동작하며 테스트 중입니다. 오픈소스 릴리스를 향해 작업 중이니, 팔로우하고 출시 소식을 받아보세요.
더 궁금한 점이 있으신가요? Mog에 대해 더 알아보기