zero-native: اپ دسکتاپ نیتیو با رابط وب
خلاصهٔ کاملتر
zero-native یه فریمورک اپنسورسه که میخواد فاصله بین توسعه وب و اپ دسکتاپ نیتیو رو از بین ببره. ایده اصلیش اینه: به جای اینکه مثل Electron یه مرورگر کامل داخل اپت بذاری، از WebView خود سیستمعامل استفاده میکنه. نتیجه؟ بایناریهایی زیر یه مگابایت و مصرف حافظهای بهمراتب کمتر از فریمورکهای معمول.
یه ویژگی جذاب اینه که میتونی بین دو موتور وب انتخاب کنی: System WebView برای اپهای سبک و کمحجم، یا Chromium از طریق CEF وقتی میخوای رندرینگ یکسان روی همه سیستمها داشته باشی. هر دو از یه API مشترک استفاده میکنن، پس تصمیم رو میذاره دست خودت.
لایه نیتیو با Zig نوشته میشه؛ یه زبان سیستمی ساده که ادعا میکنه یه توسعهدهنده وب میتونه در یه بعدازظهر یادش بگیره. نه borrow checker مثل Rust، نه lifetime و نه کشمکش با کامپایلر. یه مزیت دیگه Zig اینه که مستقیم میتونه کتابخونههای C رو صدا بزنه — یعنی دسترسی به SDKهای نیتیو، کدکهای صوتی یا runtime های هوش مصنوعی بدون هیچ wrapper اضافهای.
سرعت rebuild هم یه نکته برجستهست: تغییرات در لایه نیتیو در چند ثانیه کامپایل میشن، در حالی که فرانتاند همچنان hot reload داره. فرانتاند میتونه با React، Vue یا Svelte باشه و از طریق یه Bridge میتونه کد Zig رو مستقیم از JavaScript صدا بزنه.
در حال حاضر macOS و Linux پشتیبانی میشن و کار روی Windows و موبایل هم در جریانه. برای شروع کافیه:
zero-native init my_app --frontend next
cd my_app
zig build runاین دستورات یه پروژه جدید با فرانتاند Next.js میسازن و اپ رو در یه پنجره نیتیو اجرا میکنن.
نکات کلیدی:
- بایناری زیر یه مگابایت با استفاده از System WebView
- امکان انتخاب بین WebView سیستم و Chromium بر اساس نیاز پروژه
- لایه نیتیو با Zig: ساده، سریع و بدون نیاز به binding برای کتابخونههای C
- پشتیبانی از React، Vue و Svelte در فرانتاند
- rebuild سریع نیتیو + hot reload در فرانتاند
- پشتیبانی فعلی: macOS و Linux (Windows در راه)




