Fast and elegant
Vibora was designed from scratch to be efficient.
Benchmarks talks for itself.


Just like Flask

Vibora APIs were heavily inspired by the awesome Flask.
Builtin features were also based on many famous libraries as jinja2, marshmallow, websockets by aaugustin, werkzeug and many others.

Schemas validation, template engine, sessions and many more features were written from scratch to provide great performance along with an elegant async interface.
                
from vibora import Vibora, Response

app = Vibora()


@app.route('/')
async def home():
    return Response(b'Hello world')


if __name__ == '__main__':
    app.run(debug=True)
                
            
                
from vibora import Vibora, Websocket

app = Vibora()


@app.websocket('/')
async def on_connect(ws: Websocket):
    # Reply back the received message.
    while True:
        await ws.write(await ws.read())

if __name__ == '__main__':
    app.run(debug=True)
                
            
Asynchronous?

Vibora is fully asynchronous because web APIs are often IO based and that's exactly where an async architecture shines.

Vibora also take advantage of multiple CPU cores by default thanks to the multi-processed architecture. Uvloop and other C speed-ups are used when available.
Benchmarks

Infamous Hello World

JSON Validate & Response

Full API backed by Redis

MultipartForms