Skip to main content

Fusion Framework

One framework, multiple languages, unlimited possibilities for modern application development — the core Fusion stack and orchestration layer.

Fusion Framework open source software developed by Cipher Unit (CipherUnit). One framework, multiple languages, unlimited possibilities for modern application development — the core Fusion stack and orchestration layer.
Fusion Framework by Cipher Unit. One framework, multiple languages, unlimited possibilities for modern application development — the core Fusion stack and orchestration layer.

Multi-language • Framework • Tooling

About Fusion Framework

One framework, multiple languages, unlimited possibilities for modern application development — the core Fusion stack and orchestration layer.

Fusion Framework is Cipher Unit's multi-language application stack for building modern developer tools and product backends. It ties together orchestration, tooling, and shared conventions so teams can ship across TypeScript, Rust, and related Fusion packages from one coherent foundation.

Use Fusion when you want a consistent project structure, shared docs at fusion.cipherunit.xyz, and an open-source core maintained by the Cipher Unit (CipherUnit) engineering collective. The framework repository is the entry point to the wider Fusion ecosystem including GUI, CLI tooling, docs, and snippets.

Fusion Framework

Class-based HTTP APIs with one shared Rust core and first-class bindings for Python, Node.js, and C#. Routes, middleware, OpenAPI/Swagger, cache, templates, and background tasks share the same semantics across languages — write once in fusion-core, expose through each binding.

Docsfusion.cipherunit.xyz
CLI / scaffoldscipherunits/fusion-tool
LicenseBSD 3-Clause
Version2.0.1

Why this repo

Most multi-language frameworks drift: each binding invents its own router rules and OpenAPI shapes. Fusion keeps shared behavior in Rust (crates/fusion-core) and thin glue in each language, so api/[module]/{id}, versioned Swagger, and middleware chains stay aligned.

Install (applications)

Use published packages for app projects. Scaffold with Fusion Tool when you want a full project tree:

# CLI
# https://github.com/cipherunits/fusion-tool
fusion init --lang python --name my-app   # or node / csharp
LanguagePackage
Pythonpip install fusion-framework
Node.jsnpm install fusion-framework
C#dotnet add package Fusion-Framework

Binding-specific quick starts live next to the packages:

Repository layout

crates/fusion-core/     Shared Rust: routing, HTTP, cache, templates, tasks
crates/fusion-py/       Python (PyO3) + fusion_framework package
crates/fusion-node/     Node (N-API) package published as fusion-framework
crates/fusion-ffi/      C ABI used by the C# binding
bindings/csharp/        Managed C# API (NuGet: Fusion-Framework)
examples/               Side-by-side demos (.py / .mjs / .cs)
tests/                  Executable tests (not inside installable packages)
scripts/                Dev install + version bump helpers
.agents/skills/         Agent skills for contributors working in this repo

Develop from source

Prerequisites: Rust (stable), Python 3.9+, Node 18+, .NET SDK matching the C# target (net10.0).

From the repo root:

./scripts/dev-install-python.sh --create-venv   # or --venv .venv
./scripts/dev-install-node.sh
./scripts/dev-install-csharp.sh
# or all three:
./scripts/dev-install-all.sh

Details: scripts/README.md.

Tests

./tests/scripts/run-all.sh

Per binding and layout notes: tests/README.md.

Examples

Runnable samples under examples/ mirror public APIs across languages (routing, cache, middleware, templates, static files, and more). Prefer adding a trio (.py / .mjs / .cs) when you introduce a new cross-binding feature.

Contributing

Cross-binding parity

If a feature is user-facing in one binding (routes, middleware, permissions, settings, Swagger, UI helpers, …), implement it in Python, Node, and C# in the same change set unless the change is explicitly scoped. Put shared semantics in fusion-core first.

Commit messages

Use Conventional Commits:

<type>(optional-scope): <short summary>

feat(cache): add get_or_set helper
fix(node): restore swagger navbar versions
docs: expand root README install section
chore(release): bump to 2.0.2

Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, release.

Optional local check (POSIX shell, no npm):

git config core.hooksPath .githooks

That installs .githooks/commit-msg. Editor defaults: .editorconfig.

Staging

Stage files by path (git add path/to/file). Do not use git add . / git add -A in this repository.

Links

License

BSD 3-Clause. See LICENSE.

Open Terminal
Terminal Logo