Skip to main content

The library for nest style microservice

Project description


Python library for nest style Microservices


There is one nodejs framework named nestjs which is perfect to develop microservices. but we wanted to implement some microservices in python to work together with nestjs framework, I didn't find a solution, so I developed this package to do that, for now, it only implemented the MessagePattern so in nestjs, it is @MessagePattern and we can have same function in python with this lib/package.

How to use

Install latest version

pip install python-nestjs

The microservices server

in nestjs, you can do it with @MessagePattern, and the pattern can be string or object in nestjs, similarly in python the pattern can also be str or dict, you can find sample code here is sample code, e.g.

in your

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from nest import NestMsServer, MessagePatternBaseHandler

app = NestMsServer()

to have handler function to process the pattern, you have two options

  • have a class which extends MessagePatternBaseHandler
  1. have the class
class TestDictHanlder(MessagePatternBaseHandler):
    def __init__(self):

    def get_message_pattern(self):
        '''return the message pattern

        it can be string or dict
        e.g. 'TEST' or {'cmd': 'test'}
        return {'cmd': 'TEST_PATTERN' }

    def handle(self, payload):
        '''handler function to process payload

        It should returns
        err - any error or None
        result - the processed result
        return None, ['this is test dict', 'another test dict result']
  1. add/register the handler class
  • have a function decorated with decorator message_pattern
  1. write a function and decorate it
@app.message_pattern({'cmd': 'test_decorator'})
def test_decorator(payload):
    '''test decorator function

    the function accepts one parameter payload
    return None, payload

start/run it

    HOST ='localhost'
    PORT = 7086
    print(f'started to run and listed to port {PORT}'), PORT)

The microservices client

if you want to call microservices which was implemented in nestjs, it is also simple, find in or sample code here.

#!/usr/bin/env python
# -*- coding:utf-8 -*-

from nest import NestMsClient

if __name__ == '__main__':
    HOST ='localhost'
    PORT = 7086
    client = NestMsClient(HOST, PORT)
    pattern = 'TEST_PATTERN'
    res = client.send(pattern, None)
    pattern = { 'cmd' :'TEST_PATTERN' }
    res = client.send(pattern, None)
    pattern = { 'cmd' :'test_decorator' }
    res = client.send(pattern, 'this is ok')





MIT License

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-nestjs-0.0.4.tar.gz (5.8 kB view hashes)

Uploaded source

Built Distribution

python_nestjs-0.0.4-py3-none-any.whl (7.6 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page