تخطَّ إلى المحتوى
ططارق الوليديAI Developer Tools Directory
B

Bruno

نشط ومستقريعمل محلياً ✓بدون اشتراك API

اختبر واجهات API محليًا واحفظ الطلبات كملفات نصية قابلة لمراجعة Git وتشغيلها من CLI وCI.

$npm install -g @usebruno/cli
💡

الاستخدام المثالي لهذه الأداة

مثالي للمطور الفردي أو الفريق الصغير الذي يريد وضع مجموعات API واختباراتها بجوار الكود ومراجعتها عبر Git. استخدمه لفحوص REST وGraphQL وgRPC وWebSocket القابلة للتكرار، وليس لمزامنة سحابية لحظية أو اختبار الحمل.

التفاصيل والميزات المصورة

تبدأ المشكلة عادةً من طلب API بسيط في تطبيق رسومي، ثم تتكاثر الطلبات والبيئات والتوكيدات حتى يصبح الفريق أمام ملف تصدير كبير أو مساحة سحابية يصعب مراجعة تغييراتها مثل الكود. Bruno يعالج هذه الفجوة بحفظ مجموعة الطلبات محليًا كملفات نصية، بحيث تفتحها في تطبيق سطح المكتب، تراجعها في Git، وتشغّل الاختبارات نفسها من الطرفية أو CI. قيمته ليست في إرسال HTTP فقط؛ بل في جعل تعريفات API جزءًا واضحًا من سير العمل الهندسي.

🧭 ما Bruno؟

Bruno عميل مفتوح المصدر لاستكشاف واجهات API واختبارها. يدعم REST وGraphQL وgRPC وWebSocket، ويخزن المجموعات داخل مجلد على جهازك بدل ربطها إلزاميًا بخدمة سحابية. يذكر المشروع صراحةً أن المنتج offline-only ولا يخطط لإضافة مزامنة سحابية؛ لذلك تظل ملفات المجموعة تحت سيطرتك، وتختار أنت مستودع Git أو وسيلة النسخ الاحتياطي.

هناك سطحان أساسيان للعمل:

  • تطبيق سطح مكتب لبناء الطلبات، اختيار البيئات، فحص الاستجابات وكتابة التوكيدات والسكربتات.
  • أداة طرفية bru لتشغيل طلب أو مجلد أو مجموعة كاملة محليًا وفي خطوط CI/CD.

يحفظ Bruno تعريفات الطلبات في ملفات نصية قابلة للفرق والمراجعة. تعرض الوثائق الحالية تنسيقات Bruno/OpenCollection، بينما يشرح مستودع المشروع لغة Bru النصية. النتيجة العملية واحدة للقارئ: يمكن فتح الملفات في المحرر، ومراجعة التغيير قبل الدمج، واسترجاع نسخة سابقة من Git.

تحويل طلبات API من ملفات مبعثرة إلى مجموعة محلية واحدة تعمل في التطبيق وCLI وCI
تحويل طلبات API من ملفات مبعثرة إلى مجموعة محلية واحدة تعمل في التطبيق وCLI وCI

🎯 متى يكون الاستخدام مثاليًا؟

يناسب Bruno مطورًا فرديًا أو فريقًا صغيرًا يريد أن تكون اختبارات API بجوار الكود، أو يريد الانتقال من مجموعة لا يظهر فرقها بوضوح إلى ملفات قابلة للمراجعة. وهو مفيد عند بناء خدمة داخلية، توثيق أمثلة طلبات حقيقية، اختبار بيئات التطوير والاختبار، أو تشغيل فحص API بعد كل تغيير.

لا تختَره فقط لأنك تريد مزامنة سحابية فورية وحضورًا تعاونيًا لحظيًا؛ هذه ليست فلسفته. كذلك ليس بديلًا لأداة اختبار حمل، ولا يراقب الخدمة في الإنتاج على مدار الساعة. يمكن دمجه في CI للفحص الوظيفي، لكن قياس الضغط والمراقبة المستمرة يحتاجان أدوات مخصصة.

🧩 كيف يعمل خطوة بخطوة؟

  1. أنشئ Collection داخل مجلد مشروع أو مستودع مستقل.
  2. أضف طلبًا وحدد المسار والرؤوس والجسم والمصادقة المطلوبة.
  3. ضع القيم المتغيرة مثل baseUrl ومعرّف المستخدم في Environment، ولا تضع التوكنات الحقيقية في Git.
  4. أضف توكيدًا واضحًا، مثل أن تكون الحالة 200 وأن يحتوي الرد على حقل متوقع.
  5. نفّذ الطلب من تطبيق سطح المكتب، ثم شغّل المجموعة من الطرفية للتحقق من قابلية الأتمتة.
  6. راجع ملفات النص في Git، وافصل تغيير الطلب عن الأسرار والنتائج المؤقتة.
  7. شغّل bru run في CI، واجعل رمز الخروج الفاشل يوقف الدمج أو النشر.

هذا الفصل مهم: التطبيق يساعدك في الاستكشاف، والملفات تحفظ المعرفة، وGit يراجع التغيير، وCLI يثبت أن السيناريو قابل للتكرار.

مجموعة Bruno النصية تمر عبر فرع Git وفرق واضح ومراجعة ثم دمج
مجموعة Bruno النصية تمر عبر فرع Git وفرق واضح ومراجعة ثم دمج

🔌 البروتوكولات والبيئات

يستطيع Bruno التعامل مع REST وGraphQL وgRPC وWebSocket بحسب صفحة المنتج الرسمية. يمكنك تعريف بيئات منفصلة للتطوير والاختبار والإنتاج، ثم تبديل القيم دون نسخ الطلب نفسه. هذا يقلل خطأ شائعًا: وجود ثلاث نسخ من المجموعة تختلف تدريجيًا ولا يعرف أحد أيها الأحدث.

افصل بين ثلاثة أنواع من القيم:

النوعمثالأين يوضع؟
إعداد غير حساسbaseUrlملف البيئة القابل للمراجعة
قيمة محلية حساسةtoken أو كلمة مرورSecret Manager أو ملف محلي مستبعد من Git
قيمة ناتجة أثناء الاختبارمعرّف طلب جديدمتغير وقت تشغيل مع مراجعة سلوك الحفظ

يدعم Bruno استيراد مجموعات من Postman وInsomnia ومواصفات OpenAPI وغيرها، لكن الاستيراد ليس نهاية العمل: راجع المصادقة والسكربتات والمتغيرات بعد التحويل، لأن النماذج ليست متطابقة دائمًا.

بيئات Bruno تشغّل طلبات REST وGraphQL وgRPC وWebSocket مع متغيرات منفصلة
بيئات Bruno تشغّل طلبات REST وGraphQL وgRPC وWebSocket مع متغيرات منفصلة

✅ مثال عملي: فحص خدمة طلبات

افترض خدمة داخلية فيها GET /health وPOST /orders. أنشئ بيئة Local بقيمة baseUrl=http://localhost:3000، ثم أضف طلب الصحة وطلب إنشاء الطلب. ضع التوكن في مخزن الأسرار، وأضف توكيدًا لحالة الصحة وتوكيدًا بأن استجابة الطلب الجديد تحمل id.

ثبّت CLI ثم شغّل المجموعة:

npm install -g @usebruno/cli
bru run --env Local

إذا كان مشروعك ينظم الطلبات داخل مجلد فرعي، يمكن تشغيل المجلد أو ملف طلب محدد وفق مرجع CLI. ابدأ بالأمر الأبسط أعلاه، وثبّت إصدار CLI في بيئة CI بدل الاعتماد الدائم على أحدث إصدار. لم أنفّذ Bruno أو المجموعة في بيئة هذا الدليل؛ التحقق هنا وثائقي من المستودع والوثائق الرسمية.

في العمل اليدوي قد يرسل المطور طلبات فردية ثم ينسى نقل تعديل إلى زميله. في Bruno تصبح المجموعة نفسها أصلًا نصيًا: يغيّر المطور الطلب، يرى المراجع الفرق، ثم يعيد CI تشغيل السيناريو. يبقى الحكم على صحة التوكيد مسؤولية الفريق؛ الأداة لا تعرف تلقائيًا أن نتيجة العمل التجارية صحيحة.

تشغيل مجموعة Bruno من الطرفية يعيد نتيجة نجاح أو فشل قابلة للاستخدام في CI
تشغيل مجموعة Bruno من الطرفية يعيد نتيجة نجاح أو فشل قابلة للاستخدام في CI

🔐 الخصوصية والأسرار والصلاحيات

الميزة الأوضح هي أن المجموعات محلية ولا تحتاج حساب Bruno لاستخدام الأساسيات. لكن «محلي» لا يعني «آمن تلقائيًا»: الطلبات نفسها قد ترسل بيانات إلى أي مضيف تضعه في baseUrl، والسكربتات قد تتعامل مع أسرار أو تغيّر متغيرات.

في Bruno V4 نقل المشروع تعيينات مزودي الأسرار إلى ملفات البيئة. القيم السرية نفسها لا تُكتب إلى القرص، لكن أسماء التعيينات وإعدادات المزود قد تظهر في الملفات. الأهم: توضح ملاحظات V4 أن السكربتات التي تستخدم bru.setEnvVar تحفظ تغييرات متغيرات البيئة إلى القرص افتراضيًا. لذلك:

  • راجع git diff قبل كل commit.
  • استخدم Secret Manager للقيم الحساسة أو ملف .env محليًا مع إضافته إلى .gitignore.
  • لا تفترض أن متغيرًا أنشأه السكربت سيبقى في الذاكرة فقط.
  • افتح المجموعات القديمة في التطبيق لإجراء ترحيل V4؛ CLI لا ينفذ الترحيل نيابةً عنك.
فصل القيم السرية عن ملفات البيئة مع تحذير من حفظ تغييرات المتغيرات على القرص في Bruno V4
فصل القيم السرية عن ملفات البيئة مع تحذير من حفظ تغييرات المتغيرات على القرص في Bruno V4

تشغّل Bruno CLI السكربتات افتراضيًا في Safe Mode مبني على QuickJS/WASM. يمنع هذا الوضع الوصول إلى نظام الملفات وأوامر النظام ووحدات Node الأصلية. يوجد Developer Mode لسيناريوهات تحتاج صلاحيات أوسع، لكنه مناسب فقط لمجموعة موثوقة راجعت سكربتاتها. تعامل مع Collection مستوردة كما تتعامل مع كود خارجي: اقرأ السكربت قبل تشغيله، وابدأ بالوضع الآمن.

الوضع الآمن في Bruno CLI يمنع الملفات وأوامر النظام بينما يفتح وضع المطور صلاحيات أوسع
الوضع الآمن في Bruno CLI يمنع الملفات وأوامر النظام بينما يفتح وضع المطور صلاحيات أوسع

💰 النسخة المجانية وما قد يتطلب الدفع

المشروع الأساسي مفتوح المصدر بترخيص MIT، وتعرض صفحة الأسعار خطة Open Source بسعر صفر. عند التحقق في 1 نوفمبر 2026 كانت الخطتان المدفوعتان المعروضتان هما Pro بسعر 6 دولارات للمستخدم شهريًا عند الدفع السنوي، وUltimate بسعر 11 دولارًا للمستخدم شهريًا عند الدفع السنوي. راجع الصفحة قبل الشراء لأن الأسعار والحدود قابلة للتغيير.

نقطة تحتاج انتباهًا: التعاون عبر ملفات Git مجاني، ويمكنك استخدام Git من الطرفية أو أي عميل خارجي. أما بعض إجراءات Git المتقدمة داخل واجهة Bruno، مثل commit وpush وإدارة الفروع وحل التعارضات داخل التطبيق، فتضعها وثائق المشاركة وصفحة الأسعار ضمن القدرات المدفوعة. كذلك قد تختلف التقارير وبعض ميزات الفرق حسب الخطة. لا تخلط بين «Git مجاني» و«كل أزرار Git داخل التطبيق مجانية».

⚖️ ماذا تكسب مقارنة بالعمل اليدوي؟

المهمةيدويًا أو في ملفات متفرقةباستخدام Bruno
مشاركة الطلباتنسخ روابط ونصوص أو تصدير ملف كبيرملفات نصية داخل Git
مراجعة التغييرصعب معرفة الحقل الذي تغيّرفرق Git وطلب مراجعة
تبديل البيئةنسخ الطلب وتعديل العنوانEnvironment ومتغيرات
التكرار في CIإعادة كتابة الاختبار بأداة أخرىتشغيل المجموعة بـ bru run
ملكية البياناتتعتمد على الخدمة المستخدمةالمجموعة على جهازك ومستودعك
التعاون اللحظيقد يكون جاهزًا في أدوات سحابيةيعتمد على Git، لا مزامنة Bruno سحابية

القيمة المضافة تظهر عندما يصبح الطلب جزءًا من دورة التطوير لا مجرد تجربة مؤقتة. إذا كان الفريق لا يراجع ملفات المجموعة ولا يشغّلها آليًا، فستبقى الأداة مجرد عميل API آخر.

مسار عملي من تصميم طلب API إلى اختبار محلي ومراجعة Git وتشغيل CI
مسار عملي من تصميم طلب API إلى اختبار محلي ومراجعة Git وتشغيل CI

⚠️ القيود والتوافق

  • تطبيق سطح المكتب متاح لـ macOS وWindows وLinux، مع تنزيلات وحزم متعددة. CLI يثبت عبر npm، وتوجد صور Docker رسمية لمعمارية linux/amd64 وlinux/arm64.
  • أحدث إصدار منشور تحققنا منه هو v4.3.0 بتاريخ 22 أكتوبر 2026. صفحة التنزيل قد تتأخر عن صفحة إصدارات GitHub؛ اعتمد صفحة الإصدار عند مقارنة الأرقام.
  • آخر commit ظاهر على الفرع الرئيسي كان 30 أكتوبر 2026. سجل المستودع وقت الفحص نحو 48.0 ألف نجمة و3.1 آلاف fork؛ هذه مؤشرات انتشار وليست تقييم جودة.
  • لا توجد مزامنة سحابية من Bruno؛ Git هو مسار التعاون المقصود.
  • V4 يحمل تغييرات كاسرة في الأسرار ومتغيرات البيئة؛ لا تخلط إصدارات التطبيق وCLI داخل الفريق من دون خطة ترحيل.
  • الاختبار الوظيفي لا يساوي اختبار حمل أو مراقبة إنتاج، والتوكيدات الرديئة تعطي ثقة زائفة.
  • لم نتحقق بالتشغيل من المثبتات أو CLI أو الاستيراد؛ تحققنا من الوثائق والمستودع والإصدار والأسعار المنشورة.

📚 المصادر وتاريخ التحقق

تم التحقق في 1 نوفمبر 2026 من المصادر الأصلية التالية: