Skip to main content

Valkyrja

Valkyrja is a Python framework for web and console applications.

Valkyrja (pronounced "Valk-ear-ya") is the Old Norse spelling for Valkyrie, a mythical creature that would guide warriors to Valhalla (the afterlife and a better place) after death. In a similar sense, the Valkyrja framework guides your application to be in a better state. Fast, light, and robust, Valkyrja does the heavy lifting so you can focus on your application.

Latest Version on PyPI Supported Python Version License CI Status

Status

Warning: the Python port is in progress. This repository holds the package, the CI pipeline, and the release process. It does not hold the framework yet. Install the package to reserve the dependency, and do not build an application on it yet.

PHP is the reference implementation, and every other port mirrors its structure, its naming, and its tests. Read PORTS.md for the state of each language.

What Valkyrja Includes

The list below is what the port delivers. Each item exists in the PHP reference implementation today.

  • HTTP and CLI entry points — one application architecture serves a web request and a command-line invocation
  • Dependency injection container — deferred bindings, contextual resolution, and a generated cache that the framework loads at boot
  • Routing — route definitions with middleware, constraints, and reverse resolution
  • Event dispatcher — decoupled event handling with typed listeners
  • ASGI worker support — Uvicorn, Hypercorn, and Granian entry points, and a CGI and Lambda mode

The framework works without a cache. A provider exposes its class references, so the framework walks the provider tree and registers everything at runtime. The cache is a cold-start optimization, and it is not a correctness requirement.

Installation

uv add valkyrja
pip install valkyrja

Python 3.14 or later is required.

Ecosystem

Valkyrja is the core framework. A set of related projects sits around it in the Valkyrjaio organization:

  • Sindri — the build tool that generates the cache. It is a development dependency, and it never ships to production.
  • Valkyrja Ruff — the shared Ruff configuration, and the copyright header command that every Valkyrja Python repository consumes
  • Project Template — the scaffold that a new Valkyrja Python repository starts from

See the Valkyrjaio organization page for the complete listing.

Versioning and Release Process

Valkyrja follows semantic versioning with a major release every year, and support for each major version for 2 years from the date of release.

For more information see the Versioning and Release Process documentation.

Contributing

Valkyrja is an open-source, community-driven project. Thank you for your interest in helping develop, maintain, and release it.

See CONTRIBUTING.md for the submission process and VOCABULARY.md for the terminology that Valkyrja uses.

Security Issues

If you discover a security vulnerability within Valkyrja, please follow the disclosure procedure.

License

Valkyrja is open-source software licensed under the MIT license. See LICENSE.md.

Release files for valkyrja 26.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for valkyrja 26.0.6
File Size Uploaded
valkyrja-26.0.6.tar.gz 48.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for valkyrja 26.0.6
File Interpreter ABI Platform
valkyrja-26.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 53.5 kB

Release files / valkyrja-26.0.6.tar.gz

Download URL valkyrja-26.0.6.tar.gz
Size 48.8 kB
Tags Source
SHA-256 checksum
How to use checksums
ebf5bfb146cd04ef0fc646dda1fda9a3984c61bf8594062aabc7c2fc9cab787e
BLAKE2b-256 checksum
How to use checksums
b8bd98159d663bbafaa3feee3880eb0fb5da8a66c70baadc7b57369b6c7596af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / valkyrja-26.0.6-py3-none-any.whl

Download URL valkyrja-26.0.6-py3-none-any.whl
Size 4.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e92b6abb6307e5a1ce7969f7723a9f3c80c5e5062a96a64d7caa7029c69bc986
BLAKE2b-256 checksum
How to use checksums
003857aa1d8920eeabaf54b2f0497b12cbc508e0dd6dd9d26804d2e6256e8cf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.9 {"installer":{"name":"uv","version":"0.12.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

26.0.6 This release

2 release files

26.0.5

2 release files

26.0.4

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page