لوگوی فریم‌ورک Fusion ساخته Cipher UnitFusion

نمای کلی معماری

ساختار Fusion Framework — هسته Rust، باندینگ‌های زبانی و FMA

Fusion چیست؟

Fusion Framework یک فریم‌ورک HTTP کلاس‌محور است. ماژول‌های API را به‌صورت کلاس (FusionBaseApi) تعریف می‌کنید، با decorator یا attribute مسیر ثبت می‌کنید، و FusionApp را اجرا می‌کنید. هستهٔ مشترک Rust (fusion-core) مسئول سرو کردن HTTP، مسیریابی، تنظیمات، کمک‌کننده‌های header و سریالایز پاسخ است. باندینگ‌های زبانی (Python، TypeScript/Node.js، C#) نازک می‌مانند و روی تجربهٔ توسعه‌دهنده تمرکز دارند.

نسخهٔ فعلی پکیج‌های فریم‌ورک در مخزن متن‌باز: 1.2.6 (ریپوی fusion-framework).

فلسفهٔ طراحی

اصلمعنا در عمل
هستهٔ مشترکتوکن‌های مسیر، تنظیمات، کدهای وضعیت و کمک‌کننده‌های header یک‌بار در Rust پیاده می‌شوند
API کلاس‌محورHandlerها روی کلاس‌ها هستند، نه توابع آزاد — هر ماژول سطح یک resource را مالک است
باندینگ نازکPython / Node / C# همان معنای HTTP را با syntax بومی خود نشان می‌دهند
ثبت صریحImport کردن ماژول route (یا Route.Register) آن را ثبت می‌کند؛ اسکن جادویی فایل‌سیستم وجود ندارد
پکیج‌های قابل ترکیبکتابخانه‌های قابل استفادهٔ مجدد پکیج‌های عادی‌اند که با Fusion Tool نصب می‌شوند (fusion add)

معماری سطح بالا

flowchart TB
  subgraph app [اپلیکیشن شما]
    Main[main / نقطهٔ ورود Program]
    RouteMods[ماژول‌های route — FusionBaseApi]
    Libs[پکیج‌های کتابخانه‌ای نصب‌شده]
  end
  subgraph binding [باندینگ زبانی]
    Decorators[route / http_* / attributes]
    MW[زنجیرهٔ middleware]
    App[FusionApp]
  end
  subgraph core [fusion-core — Rust]
    Settings[Settings]
    Router[Router]
    Hyper[سرور Hyper]
    Headers[کمک‌کننده‌های Header]
    OpenAPI[دادهٔ OpenAPI]
  end
  Main --> RouteMods
  Main --> App
  Libs --> RouteMods
  RouteMods --> Decorators
  Decorators --> Router
  App --> MW
  MW --> Router
  App --> Settings
  App --> Hyper
  Router --> Hyper
  Headers --> binding
  OpenAPI --> App

لایه‌هایی که با آن‌ها کار می‌کنید

لایهمسئولیت
Applicationmain.py / فایل ورود، JSON محیط، لیست middleware، import ماژول‌ها
Route moduleکلاس FusionBaseApi با @route / route() / [Route] — مالک handlerهای HTTP یک resource
Library packageپکیج قابل انتشار با fusion module init و نصب با fusion add — کد قابل import عادی، نه پلاگین خاص runtime
BindingAPI مخصوص زبان روی هستهٔ Rust
fusion-coreسرور HTTP، router، settings، توکن‌های نام‌گذاری، fingerprint، سریالایز

FMA (Fusion Module Architecture)

FMA مدل ماژولاریتی Fusion است: اپلیکیشن از ماژول‌های route و اختیاری پکیج‌های قابل استفادهٔ مجدد تشکیل می‌شود، با مرز واضح بین سطح HTTP و کتابخانه‌های مشترک.

→ جزئیات: معماری ماژول Fusion (FMA)

مسیر یادگیری

  1. Fusion چیست و چه نیست — مرز دامنه (بدون ORM، بدون DI container، …)
  2. Workspace و crateها — جای هسته در برابر باندینگ‌ها
  3. ساختار پروژه — آنچه fusion init می‌سازد
  4. Fusion Tool — scaffold اپ و محیط‌ها
  5. شروع زبان: Python · TypeScript · C#
  6. ماژول‌های route اپلیکیشن
  7. پکیج‌های قابل استفادهٔ مجدد · ماژول‌های CLI
  8. چرخهٔ عمر اپلیکیشن · تنظیمات و پیکربندی · چرخهٔ عمر درخواست
  9. بهترین شیوه‌ها · ضدالگوها

ابزارهای مرتبط

  • Fusion Tool — scaffold اپ، محیط‌ها، دستورات، پکیج‌ها
  • Fusion Desktop — GUI برای مدیریت بک‌اندهای Fusion

در این صفحه