דלג לתוכן
dopejs
כל הפרויקטים

doper

שלב מוקדם — לא מיועד לייצור

מנוע רינדור Web Canvas שתוכנן מאפס.

סביבת ריצה מהירה ל-TSX עם גלילה וירטואלית מובנית, ליבת Rust/WASM דטרמיניסטית מאחורי ABI בינארי מגורסה, רינדור טקסט מלא ועריכה מקורית ב-Canvas. אבני הדרך M0–M3 הושלמו; M4 תביא את שרשרת העריכה, האירועים, זיהוי הפגיעה והנגישות.

סקירה

doper עדיין אינו מנוע רינדור שאפשר לשלב במוצר, והמאגר אומר זאת במפורש. P0/M0 עד M3 הושלמו; השלב הבא הוא M4 — שרשרת העריכה, האירועים, זיהוי הפגיעה והנגישות. ההחלטות הטכניות מעוגנות ב-`docs/design.md`, וסדר האספקה ותנאי היציאה ב-`docs/plan.md`.

מה שרץ היום הוא `apps/platform-probe`: פרוסת מדידה ולא הדגמה. היא מתעדת מרווחי פריימים של rAF ב-worker, השהיה מהתהליך הראשי ל-worker דרך SharedArrayBuffer, פעילות עצמאית של ה-worker בזמן חסימה של 200 מילישניות בתהליך הראשי, תפוקת Canvas2D ו-scroll-copy, גודל ה-WASM ועלות הטעינה, ואת מסלול הקלט לעריכה ב-Canvas — EditContext תחילה, עם proxy מרוכז של textarea כנפילה לאחור — כולל הקלטות IME שמושמעות מחדש באופן דטרמיניסטי.

הבדיקה מוכיחה רק שסביבת הפיתוח המקומית תקפה — שרת הפיתוח שולח כותרות COOP/COEP לבידוד בין מקורות — ולא שפריסה בייצור עומדת בתנאים האלה. ביצועים במכשירים אמיתיים והתנהגות IME אמיתית נחשבים הסמכת פלטפורמה נפרדת: עד שפלטפורמה מוסמכת דרך `pnpm platform:qualify`, הפרויקט אינו מצהיר על המספרים שלה.

מה זה עושה

  • סביבת ריצה מהירה ל-TSX שבה גלילה וירטואלית היא פרימיטיב מהמעלה הראשונה ולא תוספת.
  • ליבת Rust/WASM דטרמיניסטית מאחורי ABI בינארי מגורסה.
  • עריכת טקסט מקורית ב-Canvas: קלט דרך EditContext תחילה, נפילה לאחור ל-proxy מרוכז של textarea, והקלטה והשמעה דטרמיניסטיות של IME.
  • הסמכת הפלטפורמה מופרדת במפורש מהשלמת אבני הדרך — בפלטפורמות שלא הוסמכו לא נטענות טענות ביצועים.

איך מתחילים

דרישות: Node.js 22.12+‎, pnpm 10.33.2 ו-Rust 1.96.0 עם היעד wasm32-unknown-unknown.

הרצת הבדיקה מתוך עותק מקומי של המאגר

pnpm install --frozen-lockfile && pnpm m0:check && pnpm probe:dev