light microservice solution
Project description
limis is a light microservice framework built in Python and powered by Tornado.
Examples: limis examples can be found on github at limis_examples
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.