Skip to content

Latest commit

 

History

History
292 lines (210 loc) · 11.8 KB

File metadata and controls

292 lines (210 loc) · 11.8 KB

ApiArk

ApiArk

منصة API التي تحترم خصوصيتك وذاكرتك وسير عملك مع Git.

بدون تسجيل دخول. بدون سحابة. بدون تضخم.

Postman يستهلك 800 ميجابايت من الذاكرة. ApiArk يستهلك 60 ميجابايت.

آخر إصدار التنزيلات النجوم CI رخصة MIT

التنزيلالميزاتالانتقال من Postmanالأداءالمجتمعالتطوير

EnglishEspañolFrançaisDeutschPortuguês中文日本語한국어العربية


لماذا ApiArk؟

Postman Bruno Hoppscotch ApiArk
إطار العمل Electron Electron Tauri Tauri v2
استهلاك الذاكرة 300-800 MB 150-300 MB 50-80 MB ~60 MB
وقت التشغيل 10-30s 3-8s <2s <2s
يتطلب حسابًا نعم لا اختياري لا
تخزين البيانات سحابي نظام الملفات IndexedDB نظام الملفات (YAML)
متوافق مع Git لا نعم (.bru) لا نعم (YAML قياسي)
gRPC نعم نعم لا نعم
WebSocket نعم لا نعم نعم
SSE نعم لا نعم نعم
MQTT لا لا لا نعم
خوادم وهمية سحابي فقط لا لا محلي
المراقبة سحابي فقط لا لا محلي
نظام الإضافات لا لا لا JS + WASM
التقاط الوكيل لا لا لا نعم
مقارنة الاستجابات لا لا لا نعم

التنزيل

آخر إصدار

المنصة التنزيل
Windows مثبّت .exe.msi
macOS Apple Silicon .dmgIntel .dmg
Linux .AppImage.deb.rpm
مديرو الحزم
# Homebrew (macOS/Linux) — قريبًا
brew install --cask apiark

# Chocolatey (Windows) — قريبًا
choco install apiark

# Snap (Linux) — قريبًا
sudo snap install apiark

# AUR (Arch Linux) — قريبًا
yay -S apiark-bin

هل أنت مهتم بصيانة حزمة؟ افتح issue وسنعمل معك.

البناء من الشيفرة المصدرية

المتطلبات الأساسية: Node.js 22+، pnpm 10+، أدوات Rust، متطلبات نظام Tauri v2

git clone https://github.com/berbicanes/apiark.git
cd apiark
pnpm install
pnpm tauri build

الانتقال من Postman

  1. صدّر مجموعتك من Postman (Collection v2.1 JSON)
  2. افتح ApiArk
  3. Ctrl+K > "Import Collection" > اختر ملفك
  4. انتهى. طلباتك الآن ملفات YAML تملكها أنت.

يمكن الاستيراد أيضًا من: Insomnia، Bruno، Hoppscotch، OpenAPI 3.x، HAR، cURL.

الميزات

متعدد البروتوكولات — REST، GraphQL، gRPC، WebSocket، SSE، MQTT، Socket.IO في تطبيق واحد. لا توجد أداة أخرى تغطي هذا العدد من البروتوكولات.

تخزين محلي أولًا — كل طلب هو ملف .yaml. المجموعات هي مجلدات. كل شيء متوافق مع Git diff. بدون صيغ مملوكة.

الوضع الداكن + السمات — سمات داكنة وفاتحة وسوداء/OLED مع 8 ألوان تمييز.

برمجة TypeScript — سكريبتات ما قبل/بعد الطلب مع تعريفات أنواع كاملة. ark.test()، ark.expect()، ark.env.set().

منفّذ المجموعات — شغّل مجموعات كاملة مع اختبارات مبنية على البيانات (CSV/JSON)، تكرارات قابلة للتخصيص، تقارير JUnit/HTML.

خوادم وهمية محلية — أنشئ واجهات API وهمية من مجموعاتك. بيانات Faker.js، محاكاة التأخير، حقن الأخطاء. بدون سحابة، بدون حدود استخدام.

مراقبة مجدولة — اختبارات آلية مبنية على cron مع إشعارات سطح المكتب وتنبيهات webhook. تعمل محليًا، وليس على خادم شخص آخر.

توليد وثائق API — إنشاء وثائق HTML + Markdown من مجموعاتك.

محرر OpenAPI — تحرير والتحقق من مواصفات OpenAPI مع تكامل Spectral.

مقارنة الاستجابات — قارن الاستجابات جنبًا إلى جنب عبر عمليات التشغيل المختلفة.

التقاط الوكيل — وكيل HTTP/HTTPS محلي اعتراضي لفحص حركة المرور وإعادة تشغيلها.

مساعد الذكاء الاصطناعي — من اللغة الطبيعية إلى الطلبات، توليد اختبارات تلقائيًا، API متوافق مع OpenAI.

نظام الإضافات — وسّع ApiArk بإضافات JavaScript أو WASM.

استيراد كل شيء — Postman، Insomnia، Bruno، Hoppscotch، OpenAPI، HAR، cURL. انتقال بنقرة واحدة.

الأداء

مبني بتقنية Tauri v2 (واجهة خلفية Rust + webview أصلي لنظام التشغيل)، وليس Electron.

المقياس الهدف
حجم الملف التنفيذي ~20 MB
الذاكرة في وضع الخمول ~60 MB
بدء التشغيل البارد <2s
تأخير إرسال الطلب <10ms حمل إضافي

صيغة البيانات

بياناتك هي YAML بسيط. بدون تقييد بمزوّد. بدون ترميز مملوك.

# users/create-user.yaml
name: Create User
method: POST
url: "{{baseUrl}}/api/users"

headers:
  Content-Type: application/json

auth:
  type: bearer
  token: "{{adminToken}}"

body:
  type: json
  content: |
    {
      "name": "{{userName}}",
      "email": "{{userEmail}}"
    }

assert:
  status: 201
  body.id: { type: string }
  responseTime: { lt: 2000 }

tests: |
  ark.test("should return created user", () => {
    const body = ark.response.json();
    ark.expect(body).to.have.property("id");
  });

CLI

# تشغيل مجموعة
apiark run ./my-collection --env production

# مع اختبارات مبنية على البيانات
apiark run ./my-collection --data users.csv --reporter junit

# استيراد مجموعة Postman
apiark import postman-export.json

تعهد عدم التقييد

إذا قررت مغادرة ApiArk، فإن بياناتك تغادر معك. كل ملف بصيغة قياسية. كل قاعدة بيانات مفتوحة. لن نجعل الانتقال إلى أداة أخرى صعبًا أبدًا.

المجتمع

  • Discord — محادثة، أسئلة وملاحظات
  • Twitter / X — تحديثات وإعلانات
  • GitHub Discussions — أفكار، أسئلة وأجوبة، شارك مشروعك
  • GitHub Issues — تقارير الأخطاء وطلبات الميزات

الترجمات

واجهة ApiArk تدعم التدويل عبر react-i18next. متوفرة حاليًا باللغة الإنجليزية.

ساعدنا في ترجمة ApiArk إلى لغتك! راجع مجلد locales/ وأرسل PR.

التطوير

# تثبيت التبعيات
pnpm install

# التشغيل في وضع التطوير
pnpm tauri dev

# فحص TypeScript
pnpm -C apps/desktop exec tsc --noEmit

# البناء للإنتاج
pnpm tauri build

هيكل المشروع

apiark/
├── apps/
│   ├── desktop/           # تطبيق سطح المكتب Tauri v2
│   │   ├── src/           # واجهة React الأمامية
│   │   └── src-tauri/     # واجهة Rust الخلفية
│   ├── cli/               # أداة CLI (Rust)
│   ├── mcp-server/        # خادم MCP لمحررات الذكاء الاصطناعي
│   └── vscode-extension/  # إضافة VS Code
├── packages/
│   ├── types/             # أنواع TypeScript المشتركة
│   └── importer/          # مستوردو المجموعات
└── docs/                  # Documentation

التقنيات المستخدمة

الواجهة الأمامية: React 19, TypeScript, Vite 6, Zustand, Tailwind CSS 4, Monaco Editor, Radix UI

الواجهة الخلفية: Rust, Tauri v2, reqwest, tokio, tonic (gRPC), axum (خوادم وهمية), deno_core (محرك البرمجة)

المساهمة

Contributions are welcome! Check out the GitHub Issues for open tasks and feature requests.

المساهمون

الرخصة

MIT


إذا ساعدك ApiArk في سير عملك، فكّر في منحه نجمة. يساعد ذلك الآخرين على اكتشاف المشروع.