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

شروع کار

نصب Fusion Tool و ساخت پروژه

نصب

سیستم‌عامل خود را انتخاب کنید:

curl -fsSL https://raw.githubusercontent.com/cipherunits/fusion-tool/main/scripts/install.sh | bash

در Windows، نصب‌کننده fusion.exe را زیر %LOCALAPPDATA%\Programs\fusion می‌گذارد و PATH کاربر را به‌روز می‌کند. بعد یک ترمینال جدید باز کنید و تأیید کنید:

fusion --help

از سورس با Rust هم می‌توانید نصب کنید:

git clone https://github.com/cipherunits/fusion-tool.git
cd fusion-tool && cargo install --path .

پیش‌نیازها: Rust 1.70+ و Cargo.

بررسی نسخه

fusion --version

نمونه خروجی:

fusion 1.2.6

ساخت پروژه

تعاملی

fusion init

یا ساخت داخل یک پوشه:

fusion init my-app

از شما پرسیده می‌شود:

  1. زبان — Python، TypeScript، یا C# (asp-core / csharp)
  2. نام پروژه
  3. توضیحات پروژه

اگر DIRECTORY از قبل وجود داشته باشد، CLI خطا می‌دهد. اگر fusion-framework.toml از قبل باشد، پیکربندی موجود را چاپ می‌کند و بازنویسی نمی‌کند.

غیرتعاملی

fusion init --lang python --name fusion-test --description "A Fusion Framework project"
آرگومانتوضیح
[DIRECTORY]پوشهٔ هدف (اگر نباشد ساخته می‌شود؛ پیش‌فرض: پوشهٔ جاری)
--langpython، typescript، csharp یا asp-core (aliasهای C#)
--nameنام پروژه
--descriptionتوضیحات پروژه

گزینه‌هایی که ندهید همچنان به‌صورت تعاملی پرسیده می‌شوند.

نمونه‌ها:

fusion init --lang python --name my-app
fusion init ./apps/demo --lang python --name demo
fusion init --lang typescript --name my-app
fusion init --lang asp-core --name my-app

Aliasهای --lang:

مقدار ذخیره‌شدهAliasها
pythonpython, py
typescripttypescript, ts, node, nodejs
asp-corecsharp, cs, asp-core, aspnet, aspnetcore, …

چیدمان تولیدشده

برای پروژهٔ پایتون، fusion init یک اپ شروع‌کننده کوچک می‌سازد — شامل ماژول نمونهٔ products:

├── core/
│   └── settings.py
├── src/
│   └── modules/
│       └── products/
│           └── products.py
├── main.py
├── fusion-framework.toml
├── fusion.dev.json
├── fusion.prod.json
├── fusion.stage.json
└── .gitignore
  • main.py — نقطهٔ ورود: ماژول‌ها را import می‌کند (تا کلاس‌های @route ثبت شوند)، اختیاری MIDDLEWARE را وصل می‌کند، FusionApp را از settings می‌سازد، سپس listen می‌کند
  • src/modules/products/products.py — ماژول API نمونه؛ می‌توانید متادیتای Swagger به‌ازای route (tags, desc, version, …) بگذارید
  • core/settings.py — بلوک config را از fusion.<env>.json بار می‌کند (FUSION_ENV، پیش‌فرض dev)

پروژه‌های TypeScript همان چیدمان را با main.ts، core/settings.ts و ماژول نمونه دارند. C# (csharp / asp-core) entrypoint و ماژول‌ها را با [Route] scaffold می‌کند.

مقادیر پیش‌فرض محیط‌ها:

فایلپورتhostdebugswagger
fusion.dev.json8080127.0.0.1trueروشن
fusion.stage.json8081از env HOSTfalseخاموش
fusion.prod.json9090از env HOSTfalseخاموش

اجرای پروژه

فریم‌ورک را نصب کنید، سپس دستور پیش‌فرض run در محیط dev را اجرا کنید:

pip install fusion-framework
fusion command run:dev

با fusion.dev.json پیش‌فرض (host برابر 127.0.0.1، port برابر 8080، Swagger فعال):

Swagger / OpenAPI به‌طور خودکار از ماژول‌های @route ساخته می‌شود. برای امتحان endpointها بدون کلاینت جدا، Swagger UI را باز کنید.

بعدی: دستورات و محیط‌ها برای envهای سفارشی، دستورات، و config سراسری Swagger.

در این صفحه