شروع کار
نصب 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از شما پرسیده میشود:
- زبان — Python، TypeScript، یا C# (
asp-core/csharp) - نام پروژه
- توضیحات پروژه
اگر DIRECTORY از قبل وجود داشته باشد، CLI خطا میدهد. اگر fusion-framework.toml از قبل باشد، پیکربندی موجود را چاپ میکند و بازنویسی نمیکند.
غیرتعاملی
fusion init --lang python --name fusion-test --description "A Fusion Framework project"| آرگومان | توضیح |
|---|---|
[DIRECTORY] | پوشهٔ هدف (اگر نباشد ساخته میشود؛ پیشفرض: پوشهٔ جاری) |
--lang | python، 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-appAliasهای --lang:
| مقدار ذخیرهشده | Aliasها |
|---|---|
python | python, py |
typescript | typescript, ts, node, nodejs |
asp-core | csharp, 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
└── .gitignoremain.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 میکند.
مقادیر پیشفرض محیطها:
| فایل | پورت | host | debug | swagger |
|---|---|---|---|---|
fusion.dev.json | 8080 | 127.0.0.1 | true | روشن |
fusion.stage.json | 8081 | از env HOST | false | خاموش |
fusion.prod.json | 9090 | از env HOST | false | خاموش |
اجرای پروژه
فریمورک را نصب کنید، سپس دستور پیشفرض run در محیط dev را اجرا کنید:
pip install fusion-framework
fusion command run:devبا fusion.dev.json پیشفرض (host برابر 127.0.0.1، port برابر 8080، Swagger فعال):
| چه | URL |
|---|---|
| API | http://127.0.0.1:8080 |
| Swagger UI | http://127.0.0.1:8080/swagger |
Swagger / OpenAPI بهطور خودکار از ماژولهای @route ساخته میشود. برای امتحان endpointها بدون کلاینت جدا، Swagger UI را باز کنید.
بعدی: دستورات و محیطها برای envهای سفارشی، دستورات، و config سراسری Swagger.