Skip to main content

pulya is a tiny python web framework focused on performance and new python features.

Features:

  • msgspec for validation and serialization
  • dependency-injector as the main and the only DI framework
  • RSGI and first-class granian support
  • free-threading / no-gil python support
  • zero-cost routing with python-matchit

Minimal supported python version 3.12.

Quick start

Installation:

pip install pulya

Simple application (main.py:

from typing import Any
from pulya import Pulya, RequestContainer
from dependency_injector import containers, providers

class Container(containers.DeclarativeContainer):
    # Wiring configuration.
    # RequestContainer will also use this wiring config.
    wiring_config = containers.WiringConfiguration(
        modules=[__name__],
    )

    # Specially named dependency providing access to active request.
    # Must have exact name `request`, actual container will be injected
    # by the application on startup.
    request = providers.Container(RequestContainer)

app = Pulya(Container)

@app.get("/")
def home() -> dict[str, Any]:
    return {"success": True}

Run using granian:

granian --interface rsgi main:app

Check:

curl http://localhost:8000/

Release files for pulya 0.2.1

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

Source distribution (sdist)

Source distribution for pulya 0.2.1
File Size Uploaded
pulya-0.2.1.tar.gz 8.2 kB Details

Built distribution (wheel)

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

Total release size: 20.1 kB

Release files / pulya-0.2.1.tar.gz

Download URL pulya-0.2.1.tar.gz
Size 8.2 kB
Tags Source
SHA-256 checksum
How to use checksums
1535e2fdd9d5573f590f363b1f9d777059802be9ddee73eedf4986e122186261
BLAKE2b-256 checksum
How to use checksums
f212e216046d2bbc14110a342b44cf38e7c368de9a2636694f870cf4ca32a225
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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 / pulya-0.2.1-py3-none-any.whl

Download URL pulya-0.2.1-py3-none-any.whl
Size 11.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fc0a985e056aefc23716dbb1f9451cb74a1ba6d9496a3fe4fdd7e809a0c6ea50
BLAKE2b-256 checksum
How to use checksums
1148426f207c8a962142d711d0fe2b848e2650470c4757431b777c14fcd01d93
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","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

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.0

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