Логотип Fusion Framework от Cipher UnitFusion

Обзор архитектуры

Как устроен Fusion Framework — Rust-ядро, языковые биндинги и FMA

Что такое Fusion

Fusion Framework — это классовый HTTP-фреймворк. Вы описываете API-модули как классы (подклассы FusionBaseApi), регистрируете их через route-декоратор или атрибут и запускаете FusionApp. Общее Rust-ядро (fusion-core) отвечает за HTTP-сервер, маршрутизацию, настройки, хелперы заголовков и сериализацию ответов. Языковые биндинги (Python, TypeScript/Node.js, C#) остаются тонкими и сосредоточены на удобстве разработки.

Текущая опубликованная версия пакетов фреймворка: 1.2.6 (см. репозиторий fusion-framework).

Философия проектирования

ПринципЧто это значит на практике
Общее ядроТокены путей, настройки, коды статуса и хелперы заголовков реализованы один раз в Rust
Классовые APIОбработчики живут на классах, а не в свободных функциях — модуль владеет поверхностью ресурса
Тонкие биндингиPython / Node / C# повторяют ту же HTTP-семантику с идиоматичным синтаксисом
Явная регистрацияИмпорт route-модуля (или вызов Route.Register) регистрирует его; магического автосканирования файловой системы нет
Компонуемые пакетыПереиспользуемые библиотеки — обычные пакеты, устанавливаемые через Fusion Tool (fusion add)

Архитектура верхнего уровня

flowchart TB
  subgraph app [Your application]
    Main[main / Program entry]
    RouteMods[Route modules FusionBaseApi]
    Libs[Installed library packages]
  end
  subgraph binding [Language binding]
    Decorators[route / http_* / attributes]
    MW[Middleware chain]
    App[FusionApp]
  end
  subgraph core [fusion-core Rust]
    Settings[Settings]
    Router[Router]
    Hyper[Hyper server]
    Headers[Header helpers]
    OpenAPI[OpenAPI data]
  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 / entry-файл, JSON окружения, список middleware, импорт модулей
Route moduleКласс FusionBaseApi с @route / route() / [Route] — владеет HTTP-обработчиками ресурса
Library packageПубликуемый пакет, созданный через fusion module init и установленный через fusion add — обычный импортируемый код, не особый тип runtime-плагина
BindingЯзыкоспецифичный API поверх Rust-ядра
fusion-coreHTTP-сервер, роутер, настройки, naming-токены, fingerprints, сериализация

FMA (Fusion Module Architecture)

FMA — модель модульности Fusion: приложения собираются из route-модулей и опциональных переиспользуемых пакетов, с чёткой границей между HTTP-поверхностью и общими библиотеками.

→ Подробнее: Fusion Module Architecture (FMA)

Путь обучения

  1. Чем Fusion не является — границы области (без ORM, без DI-контейнера, …)
  2. Workspace и crates — где живут ядро и биндинги
  3. Структура проекта — что создаёт fusion init
  4. Fusion Tool — scaffold приложений и окружений
  5. Быстрый старт по языкам: Python · TypeScript · C#
  6. Route-модули приложения
  7. Переиспользуемые пакеты · CLI Modules
  8. Жизненный цикл приложения · Настройки и конфигурация · Жизненный цикл запроса
  9. Лучшие практики · Анти-паттерны

Связанные инструменты

  • Fusion Tool — scaffold приложений, окружений, команд, пакетных модулей
  • Fusion Desktop — GUI для управления Fusion-бэкендами

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