ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
A Paper Typesetting Editor
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
For the old version, please check out the repo: Eorg.
For v1 of SoftMaple, please check out the main branch.
Softmaple is a collaborative $\LaTeX$-flavoured document editor. Each layer
below is its own workspace package — here is the path a keystroke takes from
the browser to durable storage:README 전문 보기 ↗⚠️ Under Construction
For the old version, please check out the repo: Eorg.
For
v1of SoftMaple, please check out themainbranch.
Softmaple is a collaborative $\LaTeX$-flavoured document editor. Each layer below is its own workspace package — here is the path a keystroke takes from the browser to durable storage:
Browser
apps/web · apps/playground
│
┌─────────────────────────┼──────────────────────────────┐
│ │ │
@softmaple/editor @softmaple/binding-lexical @softmaple/awareness
Lexical UI shell Lexical ↔ block model ephemeral presence
│ │
@softmaple/block-model │
blocks · marks · event batches │
│ │
@softmaple/eg-walker │
event graph · CRDT convergence │
│ │
RichTextEventBatch on the wire │
│ │
@softmaple/collab-protocol │
versioned wire messages │
│ │
@softmaple/collab-runtime ──PresenceCodec──┘
DocumentRoom / PresenceRoom semantics
┌────────────┴────────────┐
│ │
Node/Nitro Cloudflare
apps/collab-nitro apps/collab-cloudflare
│ │
Redis Durable Object
pub/sub · leases hibernatable room
│ │
└────────────┬────────────┘
│
Supabase/Postgres
durable event log
The diagram is ordered by data flow, not by import direction — a package drawn
lower is not necessarily the one being imported. The actual import graph is
enforced by shared ESLint rules
(packages/eslint-config/collaboration-layers.js):
@softmaple/block-model imports @softmaple/eg-walker, and
@softmaple/collab-protocol imports @softmaple/block-model — never
@softmaple/eg-walker directly — so the protocol validates the batches it
carries without depending on the sequence CRDT.
Awareness stays independent of every convergent document model and meets the
bindings only inside an app. @softmaple/collab-runtime hosts PresenceRoom
but never imports @softmaple/awareness — the labelled edge above is the
payload-opaque PresenceCodec seam, and a host app is what binds the two.
Both collaboration runtimes host the same @softmaple/collab-runtime
semantics and write the same Postgres event log, so a document can move between
them without a history migration.
Design source of truth:
docs/design/collaboration-layers.md ·
collaboration-consistency.md ·
collaboration-runtime.md ·
collaboration-operations.md.
apps
app folderpackages
@softmaple/eg-walkerWe use pnpm for package management, if you never used it, see pnpm for installation.
pnpm install
pnpm dev
The SoftMaple community can be found on GitHub Discussions, where you can ask questions and voice ideas.
To chat with other community members you can join the SoftMaple Discord.
Our Code of Conduct applies to all SoftMaple community channels.
Devin AI $500 grants
tsconfig.jsondocs