alluka
A type based dependency injection framework for Python 3.9+.
What it is and what it does
Alluka is a dependency injection container that leverages Python's type system to automatically wire dependencies. Instead of manually passing arguments through function calls, you declare what your functions need via type hints, and Alluka resolves and injects those dependencies at runtime. It supports both synchronous and asynchronous code through integrations with AsyncIO and Trio.
The framework is designed for developers building applications where dependency management becomes complex—microservices, plugin systems, or large codebases where loose coupling matters. It's currently in Beta and requires Python 3.11 or later, with a minimal dependency footprint (only typing-extensions at runtime).
Use it for:
- Building microservices where multiple components need shared resources like database connections or configuration objects
- Creating plugin architectures where plugins declare their dependencies and the framework wires them automatically
- Testing applications by injecting mock implementations of services without changing production code
- Async applications using AsyncIO or Trio that need clean dependency management across concurrent tasks
- Large codebases where explicit dependency passing becomes unwieldy and a central container improves maintainability
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Alluka is a type-based dependency injection framework that uses Python's type hints to automatically resolve and inject dependencies into functions and classes.
Yes, if you're building a Python 3.11+ application where dependency injection would reduce coupling and improve testability. The low install friction, permissive license, and zero known vulnerabilities make it safe to adopt. However, the aging maintenance status (628 days since last release) means you should verify that the framework's feature set meets your needs before committing—it's stable but not under active development.
Install
alluka on PyPI
pip
pip install allukauv
uv add allukapoetry
poetry add allukaInstalling alluka
Before you install
Installation is straightforward with low friction—a single pure-Python wheel with only typing-extensions as a runtime dependency. The package is in Beta status and has not been updated in 628 days, suggesting stable but not actively developed code.
License in practice
Licensed under BSD (permissive), which allows commercial and private use with minimal restrictions.
Quickstart
pip install alluka
from alluka import Injector
injector = Injector()
result = injector.call(your_function)
Requires Python 3.11 or above; the framework is designed for Python 3.11+.
Verify before relying
- Whether the framework supports async/await patterns beyond the AsyncIO and Trio classifiers suggest
- Performance characteristics and overhead compared to manual dependency passing
- Real-world adoption patterns and community examples beyond the official documentation
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (<3.15,>=3.11.0) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — typing-extensions |
| Maintenance | aging — 628 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 73,832/month — #14,924 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: alluka-0.4.0-py3-none-any.whl
Keywords: DI, injection, dependency injection
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
in-n-outLightweight dependency injection framework…
permissive · top 15,000 on PyPI
rodiRodi is a dependency injection container for…
permissive · top 15,000 on PyPI
simple-diA strictly typed dependency injection library…
permissive · top 15,000 on PyPI
dishkadishka is an IoC container that manages…
permissive · top 15,000 on PyPI
kinkKink is a lightweight dependency injection…
permissive · top 15,000 on PyPI
injectProvides a lightweight dependency injection…
permissive · top 5,000 on PyPI
punqPunq is a dependency injection container for…
unclear · top 15,000 on PyPI
injectorInjector is a Python dependency injection…
permissive · top 5,000 on PyPI
fast-dependsFastDepends provides a standalone dependency…
permissive · top 5,000 on PyPI
dependency-injectorDependency Injector is a dependency injection…
permissive · top 5,000 on PyPI