# ToGO أم Gin وEcho وFiber: إطار عمل متكامل وليس موجّه مسارات آخر

> توجّه Gin وEcho وFiber طلبات HTTP وتترك لك الباقي. أما ToGO فيولّد النموذج وطبقة قاعدة البيانات والـ migrations وGraphQL وREST مع OpenAPI وصفحة React بأمر واحد. متى يناسب كل منها.

*2026-10-12T12:32:36Z*

يسألني كثيرون كيف يقارَن ToGO بـ Gin أو Echo أو Fiber. سؤال منطقي، لكنها تحل مشكلات مختلفة.

**الإجابة المختصرة:** ‏Gin وEcho وFiber **موجّهات HTTP مع middleware**. تتعامل مع الطلبات جيدًا وتترك لك قاعدة البيانات والـ migrations ومخطط الـ API والمصادقة والواجهة. أما **ToGO فإطار عمل متكامل** على طريقة Laravel وRails: يولّد `togo make:resource` النموذج واستعلامات sqlc وmigrations بـ Atlas وGraphQL وREST API مع توثيق OpenAPI وصفحة React في خطوة واحدة. اختر موجّهًا إن أردت تجميع بنيتك بنفسك، واختر ToGO إن أردت بنية محسومة ومولَّدة.

## ماذا يعطيك كل منها

| | Gin / Echo / Fiber | ToGO |
|---|---|---|
| التوجيه والـ middleware | نعم، وهو جوهر المكتبة | نعم |
| الوصول لقاعدة البيانات | تختاره بنفسك (database/sql أو GORM أو sqlc...) | sqlc، مولَّد |
| الـ Migrations | تختارها بنفسك | Atlas، مولَّدة |
| مخطط الـ API | تكتبه بنفسك | GraphQL وREST مع OpenAPI (Huma)، مولَّد |
| الواجهة | لا يوجد | صفحة React لكل مورد |
| سطر الأوامر | لا يوجد | `togo` مع المولّدات و`deploy` و`infra:init` |
| الإضافات | حزم middleware | أكثر من 130 إضافة للإطار |

وتختلف الموجّهات الثلاثة فيما بينها أيضًا: يعمل Gin وEcho فوق `net/http` القياسية في Go، بينما بُني Fiber على `fasthttp` بأسلوب يشبه Express. إن كنت تختار بين هذه الثلاثة فأنت تختار أسلوب توجيه، وإن كنت تختار بينها وبين ToGO فأنت تختار كم من التطبيق تريد أن تكتبه بيدك.

## مورد واحد من البداية للنهاية

مع موجّه، إضافة مورد `Post` تعني أن تكتب بنفسك الـ struct والـ SQL والـ migration والـ handlers والتحقق من المدخلات وتوثيق الـ API وصفحة الإدارة.

مع ToGO:

```bash
togo make:resource Post
```

يولّد هذا النموذج واستعلامات sqlc والـ migration بـ Atlas ونوع GraphQL ودواله، ونقاط REST مع OpenAPI، وصفحة React. وتُسجَّل الموارد في `togo.resources.yaml`، فيبقى شكل التطبيق في ملف واحد مقروء.

عند التشغيل يستمع الـ API على `:8080` مع `/graphql` و`/api` و`/docs`، وتطبيق الويب على `:3000`.

## قاعدة البيانات والنشر

‏SQLite هي الافتراضية، فيعمل التطبيق الجديد بلا خادم قاعدة بيانات. وتتوفر Postgres وSupabase وMySQL وMongoDB كخيارات.

ينشر `togo deploy` عبر rsync/SSH إلى خادمك، ويكتب `togo infra:init` ملفات Terraform لـ Cloud Run أو Fly.io أو Docker.

## مصمَّم لوكلاء البرمجة بالذكاء الاصطناعي

يتضمن مشروع ToGO مجلد `.claude/` وخادم MCP، والتوثيق متاح عبر MCP على mcp.to-go.dev. ولأن المولّدات تحدد البنية، يتبع الوكيل الذي يضيف ميزة نفس الأعراف التي تتبعها أنت، بدل أن يخترع بنية جديدة كل مرة.

## متى تختار ماذا

**اختر Gin أو Echo أو Fiber عندما:**
- تبني خدمة صغيرة أو proxy يكون فيها الإطار عبئًا زائدًا؛
- لدى فريقك بنية يرضاها لقاعدة البيانات والمصادقة والواجهة؛
- تحتاج اليوم منظومة ناضجة ومجتمعًا كبيرًا.

**اختر ToGO عندما:**
- تبني منتجًا فيه موارد CRUD كثيرة ولوحة إدارة وAPI؛
- تريد أن تبقى GraphQL وREST وOpenAPI متزامنة دون أن تكتبها مرتين؛
- تريد مولّدات وأعرافًا كما يعمل مطورو Laravel وRails.

## حدود بصراحة

- **ToGO في الإصدار 0.x.** قد تتغير الواجهات البرمجية بين الإصدارات.
- **المجتمع صغير.** لدى Gin وEcho وFiber سنوات من الإجابات على Stack Overflow وGitHub، وToGO ليس كذلك بعد.
- **توجد مشكلة معروفة في DDL مع Postgres.** ‏SQLite هي المسار الأسلس اليوم، فراجع قائمة المشكلات قبل الإنتاج على Postgres.
- **الأعراف سيف ذو حدين.** إن لم تتفق مع البنية (sqlc وAtlas وReact) فالموجّه يمنحك حرية أكبر.

## الأسئلة الشائعة

### هل ToGO بديل لـ Gin؟
ليس تمامًا. ‏Gin موجّه HTTP، وToGO إطار متكامل يولّد أيضًا طبقة قاعدة البيانات والـ migrations وGraphQL وREST مع OpenAPI وواجهة React. إن كنت تحتاج التوجيه فقط فـ Gin يكفي.

### أيهما أسرع، ToGO أم Fiber؟
في سرعة معالجة الطلبات الخام، بُني Fiber على fasthttp ويركّز على السرعة. أما مكسب ToGO فهو سرعة التطوير: أمر واحد يولّد موردًا كاملًا. وفي معظم المنتجات تكون قاعدة البيانات، لا الموجّه، هي عنق الزجاجة.

### هل يوجد إطار يشبه Laravel للغة Go؟
نعم. بُني ToGO بهذه الطريقة: سطر أوامر بمولّدات، وأعراف، وإضافات، وأمر واحد للنشر، فوق Go مع sqlc وAtlas وReact.

### ما قاعدة البيانات التي يستخدمها ToGO؟
‏SQLite افتراضيًا، مع دعم Postgres وSupabase وMySQL وMongoDB.

## الخطوة التالية

- [ابدأ مع ToGO](/ar/docs)
- [تصفّح الإضافات](/ar/plugins)
- [‏ToGO على GitHub](https://github.com/togo-framework)

تريد مساعدة في إطلاق منتج Go على ToGO، أو نقل خدمة قائمة إليه؟ [تواصل معي](https://fadymondy.com/ar/contact?utm_source=to-go&utm_medium=referral&utm_campaign=seo-content-oct26).

---

Source: https://to-go.dev/ar/blog/togo-vs-gin-echo-fiber
