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

Workspace и crates

Структура репозитория fusion-framework — fusion-core, биндинги и артефакты пакетов

Карта репозитория

Репозиторий fusion-framework — это Cargo workspace. Языковые пакеты публикуются из этого монорепозитория; CLI живёт в отдельном репозитории (fusion-tool).

ПутьРольПубликуемый артефакт
crates/fusion-core/Общий Rust-движок (Hyper + Tokio)Библиотека, используемая всеми биндингами
crates/fusion-py/Расширение PyO3 + Python-пакетPyPI fusion-framework
crates/fusion-node/N-API addon + JS-фасадnpm fusion-framework
crates/fusion-ffi/C ABI (cdylib / staticlib)Нативная библиотека для C#
bindings/csharp/FusionFramework/Управляемый C#-биндингNuGet Fusion-Framework
examples/Запускаемые примеры по языкам—
scripts/set-version.shСинхронный bump версии в манифестах—

Текущая версия пакетов workspace: 1.2.6.

Граф зависимостей

fusion-core
   ├── fusion-py      (PyO3)
   ├── fusion-node    (N-API)
   └── fusion-ffi     (C ABI)
          └── C# FusionFramework (P/Invoke)

Общая семантика (route-токены, coercion, envelopes, settings JSON, pagination, константы status/header, Hyper-сервер) живёт в fusion-core. Биндинги зеркалят поведение идиоматичным синтаксисом — они не должны изобретать расходящуюся HTTP-семантику.

Что куда относится

Тип измененияПредпочтительно
Path-токены, naming, коды статуса, ключи настроек, поведение сервераfusion-core
Декораторы, reflection, подключение OpenAPI UI, async host-циклыЯзыковой биндинг
Scaffold-шаблоны, раскладка fusion initfusion-tool (отдельный репозиторий)

Модули ядра (выборочно)

МодульОтветственность
AppRouter + settings; route / listen
RouterСопоставление метода и пути ({name}, [name])
Request / ResponseРазобранные HTTP-значения и builders ответов
SettingsЗагрузка fusion.<env>.json, env-плейсхолдеры
namingРаскрытие [module] / [action]
dispatchПривязка аргументов + response envelopes
paginationХелперы page / page_size
serverЦикл listen Hyper, fingerprint-заголовки

Сборка из исходников (обзор)

# Workspace
cargo check --workspace
cargo test -p fusion-core

# Python
cd crates/fusion-py && maturin develop

# Node
cd crates/fusion-node && npm install && npm run build:debug

# FFI / C#
cargo build -p fusion-ffi
dotnet build bindings/csharp/FusionFramework/FusionFramework.csproj

Публикация запускается через GitHub Actions по тегам версий (vX.Y.Z) для PyPI, npm и NuGet. См. .github/PUBLISHING.md в репозитории фреймворка.

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

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