vibora

Fast, asynchronous and elegant Python web framework.

Github stars Tracking Chart

Warning: This project is being completely re-written. If you're curious about the progress, reach me on Slack.


Vibora is a fast, asynchronous and elegant Python 3.6+ http client/server framework. (Alpha stage)

Before you ask, Vibora means Viper in Portuguese :)

Server Features

  • Performance (https://github.com/vibora-io/benchmarks).
  • Schemas Engine.
  • Nested Blueprints / Domain Based Routes / Components
  • Connection Reaper / Self-Healing Workers
  • Sessions Engine
  • Streaming
  • Websockets
  • Caching tools
  • Async Template Engine (hot-reloading, deep inheritance)
  • Complete flow customization
  • Static Files (Smart Cache, Range, LastModified, ETags)
  • Testing Framework
  • Type hints, type hints, type hints everywhere.

Client Features

  • Streaming MultipartForms (Inspired by: https://github.com/requests/requests/issues/1584)
  • Rate Limiting / Retries mechanisms
  • Websockets
  • Keep-Alive & Connection Pooling
  • Sessions with cookies persistence
  • Basic/digest Authentication
  • Transparent Content Decoding

Server Example

from vibora import Vibora, Request
from vibora.responses import JsonResponse

app = Vibora()


@app.route('/')
async def home(request: Request):
    return JsonResponse({'hello': 'world'})


if __name__ == '__main__':
    app.run(debug=True, host='0.0.0.0', port=8000)

Client Example

import asyncio
from vibora import client


async def hello_world():
    response = await client.get('https://google.com/')
    print(f'Content: {response.content}')
    print(f'Status code: {response.status_code}')


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(hello_world())

Documentation

Check it out at Vibora docs website.

Performance (Infamous Hello World benchmark)
-----------, Frameworks, Requests/Sec, Version, -------------, :-------------:, :--------:, Tornado, 14,197, 5.0.2, Django, 22,823, 2.0.6, Flask, 37,487, 1.0.2, Aiohttp, 61,252, 3.3.2, Sanic, 119,764, 0.7.0, Vibora, 368,456, 0.0.6, > More benchmarks and info at https://github.com/vibora-io/benchmarks

Goals

  • Be the fastest Python http client/server framework..
  • Windows / Linux / MacOS.
  • Enjoyable and up to date development features/trends.

Coming Soon

  • Auto Reloading
  • HTTP2 Support
  • Brotli support (Server/Client)
  • Cython compiled templates.
  • Cython compiled user-routes.

Main metrics

Overview
Name With Ownervibora-io/vibora
Primary LanguagePython
Program languagePython (Language Count: 1)
Platform
License:MIT License
所有者活动
Created At2018-06-13 15:58:58
Pushed At2020-12-23 01:00:55
Last Commit At2019-02-11 08:54:12
Release Count0
用户参与
Stargazers Count5.6k
Watchers Count248
Fork Count301
Commits Count141
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count35
Pull Requests Open Count29
Pull Requests Close Count39
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private