Description
Vibora was designed from scratch to be efficient. Vibora is a fast, asynchronous and elegant Python 3.6+ http client/server framework. (Alpha stage) Disclaimer: Still at an early stage of development. Rapidly evolving APIs. 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
vibora alternatives and similar packages
Based on the "Web Frameworks" category.
Alternatively, view vibora alternatives based on common mentions on social networks and blogs.
-
Tornado
Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed. -
HS-Sanic
DISCONTINUED. Async Python 3.6+ web server/framework | Build fast. Run fast. [Moved to: https://github.com/sanic-org/sanic] -
web2py
Free and open source full-stack enterprise framework for agile development of secure database-driven web-based applications, written and programmable in Python. -
Masonite
The Modern And Developer Centric Python Web Framework. Be sure to read the documentation and join the Discord channel for questions: https://discord.gg/TwKeFahmPZ -
TurboGears
Python web framework with full-stack layer implemented on top of a microframework core with support for SQL DBMS, MongoDB and Pluggable Applications -
Websauna
Websauna is a full stack Python web framework for building web services and back offices with admin interface and sign up process -
django-jinja-knockout
Django datatables and widgets, both AJAX and traditional. Display-only ModelForms. ModelForms / inline formsets with AJAX submit and validation. Works with Django templates. -
domonic
Create HTML with python 3 using a standard DOM API. Includes a python port of JavaScript for interoperability and tons of other cool features. A fast prototyping library. -
tartiflette-aiohttp
tartiflette-aiohttp is a wrapper of aiohttp which includes the Tartiflette GraphQL Engine, do not hesitate to take a look of the Tartiflette project.
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of vibora or a related project?
Popular Comparisons
README
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.
*Note that all licence references and agreements mentioned in the vibora README section above
are relevant to that project's source code only.