gpuix-svelte: اپ دسکتاپ نیتیو با Svelte و بدون مرورگر
خلاصهٔ کاملتر
پروژهٔ gpuix-svelte کامپوننتهای Svelte رو به یه اپ دسکتاپ نیتیو روی macOS، ویندوز و لینوکس تبدیل میکنه، اونم بدون هیچ مرورگری. یعنی برخلاف Electron، خبری از Chromium داخل اپ نیست. چون اپ روی Node یا Bun اجرا میشه، به هر چیزی روی کامپیوتر کاربر دسترسی داری. برای شروع Node 24 به بالا یا Bun 1.4 به بالا لازمه.
اساس کار قابلیت آزمایشی و هنوز منتشرنشدهٔ custom renderer تو Svelte هست، یعنی کامپایلر Svelte بهجای ساختن DOM، رندرگری رو که خودت انتخاب کردی صدا میزنه. اینجا اون رندرگر GPUI هست، فریمورک UI شتابگرفته با GPU که ادیتور Zed روش ساخته شده. markup، runeها و کلاسهای مثل همیشه کامپایل میشن و هر المنت یه نود GPUI میشه.
ابزارهای معمول هم آمادهست. hot reload داره و با ذخیرهٔ فایل، پنجرهٔ باز همونجا آپدیت میشه. استایل با بلاکهای scoped نوشته میشه و :hover و flexbox کار میکنن. تست هم داخلیه: کامپوننت رو بدون پنجره مونت میکنی و با hit testing واقعی روش کلیک میکنی، مثل این تکه از تست starter:
click_test_id('plus');
click_test_id('plus');
click_test_id('minus');
check('the buttons reached the counter', all_text().includes('1'));برای کسی که از Svelte وب میاد، $state، $derived، $effect، $props، {#each} و {#if} مثل قبل کار میکنن. ولی چندتا فرق مهم هست. فقط یه سری تگ ثابت مثل div، text، img، input و virtual-list وجود داره و بقیه با یه هشدار div میشن. رویدادهای ماوس bubble نمیکنن و فقط به المنت زیر نشانگر میرسن. bind: هم نداریم و inputها مقدار رو از طریق رویداد میفرستن.
برای انتشار، npm run build اپ، runtime و GPUI رو تو یه فایل اجرایی امضاشده جمع میکنه که البته Bun لازم داره. همون اپ میتونه روی نسخهٔ WebAssembly از GPUI توی مرورگر هم اجرا بشه. starter یه فایل AGENTS.md داره و مستندات به شکل llms.txt هم منتشر شده تا با ایجنتهای هوش مصنوعی راحتتر کار کنی.
نکات کلیدی:
- به Node 24 به بالا یا Bun 1.4 به بالا نیاز داره.
- روی custom renderer آزمایشی و منتشرنشدهٔ Svelte ساخته شده.
- رندر با GPUI، فریمورک UI ادیتور Zed، انجام میشه.
- رویدادهای ماوس bubble نمیکنن و bind: پشتیبانی نمیشه.
- خروجی فقط یه فایل اجرایی امضاشدهست که ساختش Bun میخواد.
- تست headless فعلاً روی macOS و ویندوز کار میکنه.




