Rolo documentation¶
Rolo HTTP: A Python framework for building HTTP-based server applications.
Introduction¶
Rolo is a flexible framework and library to build HTTP-based server applications beyond microservices and REST APIs. You can build HTTP-based RPC servers, websocket proxies, or other server types that typical web frameworks are not designed for. Rolo was originally designed to build the AWS RPC protocol server in LocalStack.
Rolo extends Werkzeug, a flexible Python HTTP server library, for you to use concepts you are familiar with like @route
, Request
, or Response
.
It introduces the concept of a Gateway
and HandlerChain
, an implementation variant of the chain-of-responsibility pattern.
Rolo is designed for environments that do not use asyncio, but still require asynchronous HTTP features like HTTP2 SSE or Websockets. To allow asynchronous communication, Rolo introduces an ASGI/WSGI bridge, that allows you to serve Rolo applications through ASGI servers like Hypercorn.