عن المشروع

go-app هي حزمة Go تُمكّن المطورين من بناء تطبيقات الويب التقدمية (PWA) باستخدام لغة البرمجة Go و WebAssembly (Wasm). توفر صيغة إعلانية لإنشاء وتجميع عناصر HTML بالكامل داخل كود Go، مما يسمح للمطورين بكتابة عناصر واجهة مستخدم قابلة لإعادة الاستخدام ومبنية على المكونات دون مغادرة نظام Go البيئي. تشمل الميزات الرئيسية: - صيغة واجهة مستخدم إعلانية: تُعرّف المكونات كـ Go structs تتضمن app.Compo، مع طريقة Render() تُعيد عناصر app.UI. تدعم الصيغة العرض المشروط (app.If/app.Else)، ومعالجة الأحداث (OnChange، ValueTo)، وإنشاء عناصر HTML القياسية (Div، H1، P، Input، Text، إلخ). - تكامل HTTP قياسي مع Go: تتوافق التطبيقات مع واجهات حزمة net/http في Go، باستخدام app.Route لتوجيه المكونات و app.Handler لتوجيه HTTP، مما يجعل تقديمها جنباً إلى جنب مع معالجات HTTP الأخرى في Go أمراً بسيطاً. - قدرات تطبيقات الويب التقدمية: تدعم التطبيقات بشكل افتراضي التشغيل في نافذة خاصة بها، والوضع دون اتصال بالإنترنت، وهي صديقة لمحركات البحث (SEO). - المتطلبات: Go 1.18 أو أحدث و Go modules. يتم صيانة المشروع بنشاط مع GitHub Actions CI، وتغطية Go Report Card، ومجتمع من المساهمين المدعومين من خلال Open Collective. تُستضاف الوثائق على go-app.dev وهي نفسها مبنية باستخدام go-app. تشمل المشاريع البارزة المبنية باستخدام go-app كل من Lofimusic.app، و Murlok.io، و liwasc.