Логотип Fusion Framework от 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 .

Проверка версии

fusion --version

Пример вывода:

fusion 1.2.6

Создание проекта

Интерактивно

fusion init

Или в указанную директорию:

fusion init my-app

Вам предложат указать:

  1. Язык — Python, TypeScript или C# (asp-core / csharp)
  2. Имя проекта
  3. Описание проекта

Без интерактива

fusion init --lang python --name fusion-test --description "A Fusion Framework project"
АргументОписание
[DIRECTORY]Целевая папка (создаётся при отсутствии; по умолчанию — текущая)
--langpython, typescript, csharp или asp-core (алиасы C#)
--nameИмя проекта
--descriptionОписание проекта

Пропущенные опции всё равно спросят интерактивно.

Примеры:

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

Сгенерированная структура

Для Python-проекта 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 — точка входа: импортирует модули (чтобы классы @route зарегистрировались), подключает опциональный MIDDLEWARE, собирает FusionApp из settings и слушает порт
  • 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 и примером модуля в src/modules/…. C# (csharp / asp-core) скаффолдит entrypoint в стиле .NET и модули с [Route] вместо @route.

Значения окружений по умолчанию из CLI-скаффолда:

ФайлPortHostDebugSwagger
fusion.dev.json8080127.0.0.1trueon
fusion.stage.json8081из env HOSTfalseoff
fusion.prod.json9090из env HOSTfalseoff

Запуск проекта

Установите фреймворк, затем запустите команду run по умолчанию в окружении dev:

pip install fusion-framework
fusion command run:dev

При дефолтном fusion.dev.json (host 127.0.0.1, port 8080, Swagger включён):

Swagger / OpenAPI генерируется автоматически из модулей @route. Откройте Swagger UI, чтобы попробовать эндпоинты без отдельного клиента.

Далее: Команды и окружения — кастомные env, команды и глобальный конфиг Swagger.

На этой странице