• همه۱۰٬۴۳۸
  • اخبار منتخب۲٬۱۴۲
  • هوش مصنوعیهوش مصنوعی۶٬۷۰۸
  • مهارت‌های نرم۱٬۴۵۳
  • فرانت‌اندفرانت‌اند۱٬۴۹۱
  • ری‌اکتری‌اکت۳۶۸
  • جاوااسکریپتجاوااسکریپت۱٬۱۱۰
  • پی‌اچ‌پیپی‌اچ‌پی۲۷۰
  • زیرساخت۲٬۵۷۲
  • دواپس۱٬۶۶۵
  • پایگاه داده۳۹۴
  • امنیت۲٬۲۳۱
  • اپل۴۰۱
  • گوگلگوگل۴۸۵
  • درباره ما
  • تماس با ما
  • حریم خصوصی
  • قوانین استفاده

تمامی محتوای این سایت توسط هوش مصنوعی تولید شده و ممکنه حاوی خطا باشه. مسئولیت استفاده از این اطلاعات بر عهده کاربر هست.

Telegram
دیتی خبر

‏Gooey: فریم‌ورک رابط کاربری GPU برای Zig

۶ تیرفرانت‌اندفرانت‌اندزیرساختClaude Opus 4.8Claude
Gooey یه فریم‌ورک رابط کاربری شتاب‌گرفته با GPU برای زبان Zig هست که رو macOS با Metal، رو لینوکس با Vulkan و رو مرورگر با WebGPU/WASM اجرا می‌شه. سبک نوشتنش اعلانی (declarative) و کامپوننت‌محوره و حالت برنامه رو از منطق رابط جدا نگه می‌داره. ویژگی برجسته‌اش اینه که هیچ وابستگی Zig خارجی نداره و فقط به فریم‌ورک‌های سیستم لینک می‌شه. الان تو مرحلهٔ اولیهٔ توسعه‌ست و API هنوز در حال تغییره.
این محتوا به‌صورت خودکار با استفاده از هوش مصنوعی تولید شده، و بررسی نهایی اون پیش از استفاده توصیه میشه. مسئولیت استفاده به‌عهده کاربر هست. برای مطالعه متن اصلی خبر، اینجا رو کلیک کن

خلاصهٔ کامل‌تر

تو این مخزن، Gooey به‌عنوان یه فریم‌ورک رابط کاربری شتاب‌گرفته با GPU برای زبان Zig معرفی شده. هدفش سه پلتفرمه: macOS با Metal، لینوکس با Vulkan روی Wayland، و مرورگر با WASM و WebGPU. البته تو توضیحات اومده که مسیر WebGPU/WASM فعلاً به‌خاطر یه مشکل در Zig 0.16 بالادست مسدوده. رندر روی مک و لینوکس هم با ضدلبه‌پله‌شدگی MSAA انجام می‌شه.

مدل برنامه‌نویسیش اعلانی و کامپوننت‌محوره. یه چیدمان شبیه فلکس‌باکس داره و کار با primitiveهایی زیر فضای نام ui.* ساخته می‌شه. نکتهٔ معماری مهمش جداسازی حالت از رابطه: یه شیء به اسم Cx مسئول state و هندلرها و فوکوسه، و ui.* فقط چیدمان رو می‌سازه. به گفتهٔ سازنده، الگوی «حالتِ خالص» (Pure State) باعث می‌شه منطق برنامه بدون درگیرشدن با رابط کاربری کاملاً قابل‌تست باشه و رندر هم خودکار دوباره انجام شه.

فهرست ویژگی‌ها نسبتاً بلنده: سیستم انیمیشن با easing، سیستم entity برای ساخت و حذف پویای موجودیت‌ها با پاکسازی خودکار، ویجت‌های ماندگار مثل TextInput و TextArea و Checkbox و کانتینرهای اسکرول، رندر متن بومی هر پلتفرم (CoreText روی مک، FreeType/HarfBuzz روی لینوکس)، شیدرهای سفارشی Metal/GLSL، کشیدن‌و‌رهاکردن نوع‌امن، پشتیبانی از IME برای ورود متن چندزبانه، و دسترسی‌پذیری با صفحه‌خوان‌هایی مثل VoiceOver و Orca. حتی افکت شیشهٔ مایع (Liquid Glass) مخصوص macOS 26 رو هم داره.

مهم‌ترین ادعای پروژه نداشتن وابستگیه: فایل build.zig.zon هیچ پکیج Zig خارجی فهرست نکرده و فقط به فریم‌ورک‌ها و کتابخونه‌های سیستمی لینک می‌شه؛ حتی بایندینگ‌های رانتایم Objective-C هم داخل خود درخت پروژه قرار داده شدن. برای اجرا به Zig نسخهٔ 0.16 به بالا نیاز هست و یه مجموعه دستور zig build run-* برای نمونه‌های مختلف مثل شمارنده، تودو، انیمیشن و لیست مجازی‌سازی‌شده با ۱۰ هزار آیتم آماده‌ست.

برای نشون‌دادن سبک API، یه نمونهٔ تودو آورده شده که حالتش کاملاً خالص و بدون اطلاع از رابط کاربریه و با تست‌های واحد پوشش داده می‌شه. این تیکه نشون می‌ده چطور یه TextInput به فیلد draft در state وصل (bind) می‌شه و دکمهٔ Add یه command روی همون state رو صدا می‌زنه:

ui.hstack(.{ .gap = 8, .alignment = .center }, .{
    TextInput{ .id = draft_input_id, .placeholder = "What needs doing?", .bind = &s.draft, .fill_width = true },
    Button{ .label = "Add", .on_click_handler = cx.command(AppState.addTodo) },
}),

سازنده تأکید کرده که پروژه تو مرحلهٔ اولیهٔ توسعه‌ست و API هنوز در حال تکامله. به‌عنوان نمونهٔ یه برنامهٔ واقعی هم به chat-zig اشاره شده؛ یه کلاینت Claude که با استک std.Io در Zig 0.16 برای HTTP ناهمزمان نوشته شده.

نکات کلیدی:

  • فریم‌ورک رابط کاربری GPU برای Zig با هدف macOS (Metal)، لینوکس (Vulkan) و مرورگر (WASM/WebGPU)
  • سبک اعلانی و کامپوننت‌محور با جداسازی حالت از رابط از طریق شیء Cx
  • صفر وابستگی Zig خارجی؛ فقط لینک به فریم‌ورک‌های سیستمی
  • نیازمند Zig 0.16+؛ مسیر WebGPU/WASM فعلاً بالادست مسدوده
  • هنوز در توسعهٔ اولیه و API در حال تغییره
منبع: TLDR Dev — https://github.com/duanebester/gooey
اشتراک‌گذاری:TelegramXWhatsApp

اخبار مرتبط

  • اولین دیتاسنتر زیرآبیِ بادی جهان در چین راه افتاد
    ۱۸ هفته پیش۳ دقیقهtheguardian.com
  • دیوار زیرساخت AI سر راه شرکت‌هاست
    ۱۸ هفته پیش
۴ دقیقه
itpro.com
  • Kubernetes Dashboard بایگانی شد، نوبت Headlamp
    ۱۸ هفته پیش۳ دقیقهkubernetes.io
  • مدیریت لنگرها در CSS با attr() پیشرفته و data attribute
    ۱۸ هفته پیش۲ دقیقهfrontendmasters.com
  • انیمیشن باز و بستهٔ دیالوگ با CSS
    ۱۸ هفته پیش۳ دقیقهfrontendmasters.com