light microservice solution
Project description
limis is a light microservice framework built in Python and powered by Tornado. The project is currently in active development and should be considered alpha grade at the moment. Features are being added and removed and expect the API to change frequently.
Instructions
Installation
pip install limis
Project Creation
limis-management create_project <project_name>
Service Creation
Scaffold the services with the project management command:
cd <project_name>
python management.py create_service <service_name>
Create a request handler to route service requests to your component in ‘<service_name>/handlers.py’:
from typing import Union
from tornado.websocket import WebSocketHandler
from limis.services.handlers import ComponentHandler
class HelloHTTPHandler(ComponentHandler):
def get(self):
self.write(self.component_class().hello())
class HelloWebSocketHandler(ComponentHandler, WebSocketHandler):
def on_message(self, message: Union[str, bytes]):
self.write_message(self.component_class().hello())
Create a component to perform actions on requests in ‘<service_name>/components.py’:
from limis.services.components import Component
from hello.handlers import HelloHTTPHandler, HelloWebSocketHandler
class HelloComponent(Component):
component_name = 'hello'
component_path = 'hello'
component_http_handler = HelloHTTPHandler
component_websocket_handler = HelloWebSocketHandler
def hello(self):
return 'hello'
Create a services configuration entry in ‘<service_name>’/services.py:
from limis.services import Service
from hello.components import HelloComponent
services = [
Service(name='hello', path='hello', components=[HelloComponent]),
]
Add your services module to the project services configuration ‘<project_name>/services.py’:
from hello.services import services as hello_services
context_root = ''
services = hello_services
Launch Server
Launch the limis server from the command prompt:
python manage.py server --http --websocket
Test Service
HTTP Service
curl http://localhost:8080/hello/hello
Output:
hello
WebSocket Service
Example using websocket-client
from websocket import create_connection
websocket = create_connection('ws://localhost:8888/hello/hello/')
websocket.send('test')
websocket.recv()
Output:
hello
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.