Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vibora-io/vibora
Fast, asynchronous and elegant Python web framework.
https://github.com/vibora-io/vibora
async client framework http performance python server web
Last synced: about 2 months ago
JSON representation
Fast, asynchronous and elegant Python web framework.
- Host: GitHub
- URL: https://github.com/vibora-io/vibora
- Owner: vibora-io
- License: mit
- Archived: true
- Created: 2018-06-13T15:58:58.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-12-23T01:00:55.000Z (almost 4 years ago)
- Last Synced: 2024-07-31T20:49:58.690Z (5 months ago)
- Topics: async, client, framework, http, performance, python, server, web
- Language: Python
- Homepage: https://vibora.io/
- Size: 365 KB
- Stars: 5,672
- Watchers: 252
- Forks: 306
- Open Issues: 140
-
Metadata Files:
- Readme: README.md
- Contributing: docs/contributing.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-asyncio - Vibora - Performant web framework inspired by Flask. (Web Frameworks)
README
> **Warning: This project is being completely re-written. If you're curious about the progress, reach me on Slack.**
-----------------------------------------------------------
> [Vibora](https://vibora.io) 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 DecodingServer Example
--------------
```python
from vibora import Vibora, Request
from vibora.responses import JsonResponseapp = 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
--------------```python
import asyncio
from vibora import clientasync 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](https://docs.vibora.io).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.