Fusion Framework logo by Cipher UnitFusion

Architecture overview

How Fusion Framework is structured — Rust core, language bindings, and FMA

What Fusion is

Fusion Framework is a class-based HTTP framework. You define API modules as classes (FusionBaseApi subclasses), register them with a route decorator or attribute, and start a FusionApp. A shared Rust core (fusion-core) owns HTTP serving, routing, settings, header helpers, and response serialization. Language bindings (Python, TypeScript/Node.js, C#) stay thin and focus on developer experience.

Current published version of the framework packages: 1.2.6 (see the fusion-framework repository).

Design philosophy

PrincipleWhat it means in practice
Shared corePath tokens, settings, status codes, and header helpers are implemented once in Rust
Class-based APIsHandlers live on classes, not free functions — a module owns a resource surface
Thin bindingsPython / Node / C# mirror the same HTTP semantics with idiomatic syntax
Explicit registrationImporting a route module (or calling Route.Register) registers it; there is no magic auto-discovery scan of the filesystem
Composable packagesReusable libraries are ordinary packages installed via Fusion Tool (fusion add)

High-level architecture

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

Layers you will work with

LayerResponsibility
Applicationmain.py / entry file, environment JSON, middleware list, importing modules
Route moduleA FusionBaseApi class with @route / route() / [Route] — owns HTTP handlers for a resource
Library packageA publishable package created with fusion module init and installed with fusion add — plain importable code, not a special runtime plugin type
BindingLanguage-specific API over the Rust core
fusion-coreHTTP server, router, settings, naming tokens, fingerprints, serialization

FMA (Fusion Module Architecture)

FMA is Fusion’s modularity model: applications are composed of route modules and optional reusable packages, with a clear boundary between HTTP surface and shared libraries.

→ Deep dive: Fusion Module Architecture (FMA)

Learning path

  1. What Fusion is not — scope boundaries (no ORM, no DI container, …)
  2. Workspace and crates — where core vs bindings live
  3. Project structure — what fusion init creates
  4. Fusion Tool — scaffold apps and environments
  5. Language getting started: Python · TypeScript · C#
  6. Application route modules
  7. Reusable packages · CLI Modules
  8. Application lifecycle · Settings and configuration · Request lifecycle
  9. Best practices · Anti-patterns

On this page