Skip to main content

Panther

Is A Fast & Friendly, Web Framework For Building Async APIs With Python 3.11+

Full Documentation -> https://pantherpy.github.io

PyPI -> https://pypi.org/project/panther/


Features

  • Document-oriented Databases ORM (SlarkDB, MongoDB)
  • Visual API Monitoring (In Terminal)
  • Cache APIs (In Memory, In Redis)
  • Built-in Authentication Classes (Customizable)
  • Built-in Permission Classes (Customizable)
  • Handle Custom Middlewares

Benchmark

We implemented most of the Python frameworks and sent 25,000 requests per second for 10 seconds (Total 250,000 requests) in the same environment with https://github.com/nakabonne/ali and here's the result:

you can find the detailed results & source codes here --> benchmarks

Framework Throughput Request Handled Max Latencies
Sanic 23,326 233,842 268.8ms
Panther 14,719 147,595 113.1ms
FastAPI 14,573 146,467 155.1ms
Tornado 4,969 50.585 426.5ms
Flask 3,555 36,396 1.2s
Django 2,188 22,814 526.3ms
Bottle 1,226 39,650 30.0s
Pyramid 1,023 30,912 30.0s
Cherrypy 639 24,944 30.0s

Installation

  • Create a Virtual Environment
    $ python -m venv .venv
  • Active The Environment * Linux & Mac
    $ source .venv/bin/activate
    * Windows
    $ .\.venv\Scripts\activate
  • Install Panther * Normal
    $ pip install panther
    * Include JWT Authentication
    $ pip install panther[full]

Usage

  • Create Project

    $ panther create <project_name> <directory>
    
  • Run Project

    Panther needs Uvicorn as ASGI (Asynchronous Server Gateway Interface)

    $ pip install uvicorn[standard]
    

    Then

    $ panther run 
    
  • Monitoring Requests

    $ panther monitor 
    
  • Python Shell

    $ panther shell 
    

Example

  • You can create project with

    $ panther create myproject
    
  • or create it yourself:

    core/configs.py:

    URLs = 'core/urls.py'
    

    core/urls.py:

    from app.urls import urls as app_urls
    
    urls = {
        '/': app_urls,
    }
    

    app/urls.py:

    from app.apis import hello_world, info
    
    urls = {
        '': hello_world,
        'info/': info,
    }
    

    app/apis.py:

    from panther import version, status
    from panther.app import API
    from panther.request import Request
    from panther.response import Response
    
    
    @API()
    async def hello_world():
        return {'detail': 'Hello World'}
    
    
    @API()
    async def info(request: Request):
        data = {
            'version': version(),
            'user_agent': request.headers.user_agent,
            'content_length': request.headers.content_length,
        }
        return Response(data=data, status_code=status.HTTP_202_ACCEPTED)
    
  • Then run ($ panther run) the project, now you can see these two urls:

More examples: https://github.com/AliRn76/panther/tree/master/example.

Release files for panther 1.2.7

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

Source distribution (sdist)

Source distribution for panther 1.2.7
File Size Uploaded
panther-1.2.7.tar.gz 27.7 kB Details

Built distribution (wheel)

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

Total release size: 61.5 kB

Release files / panther-1.2.7.tar.gz

Download URL panther-1.2.7.tar.gz
Size 27.7 kB
Tags Source
SHA-256 checksum
How to use checksums
04d4c44e5d2c0b62361766dc8634633b29bf82ba20ebd21f2e31206306a25528
BLAKE2b-256 checksum
How to use checksums
dfbb8a42d131501e0e9477acc6fd54484c6382e9bce8437dbfa0cac06bf4c7f5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release files / panther-1.2.7-py3-none-any.whl

Download URL panther-1.2.7-py3-none-any.whl
Size 33.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c002d7df407d05b3d6439c0466eb019be855633c4ca44e5825ea581a66c0e97a
BLAKE2b-256 checksum
How to use checksums
46765667b4d92d9040dc6eeeade0d248e5a7680d9b5fedfbe53618901e372dd6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.16

Release history Release notifications | RSS feed

5.5.0

2 release files

5.4.0

2 release files

5.3.0

2 release files

5.2.3

2 release files

5.2.2

2 release files

5.2.1

2 release files

5.2.0

2 release files

5.1.0

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.3.7

2 release files

4.3.6

2 release files

4.3.5

2 release files

4.3.4

2 release files

4.3.3

2 release files

4.3.2

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.6

2 release files

4.2.5

2 release files

4.2.4

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.9.0

2 release files

3.8.2

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.0

2 release files

3.6.0

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.2

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.5

2 release files

3.2.4

2 release files

3.2.3

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.5

2 release files

3.1.4

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.3

2 release files

2.3.2

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.0

2 release files

2.1.6

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.7.21

2 release files

1.7.20

2 release files

1.7.19

2 release files

1.7.18

2 release files

1.7.17

2 release files

1.7.15

2 release files

1.7.14

2 release files

1.7.13

2 release files

1.7.12

2 release files

1.7.11

2 release files

1.7.10

2 release files

1.7.9

2 release files

1.7.8

2 release files

1.7.7

2 release files

1.7.6

2 release files

1.7.5

2 release files

1.7.4

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

This release

1.2.7 This release

2 release files

1.2.6

2 release files

1.2.5

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

0.1.1

0.1

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