An open API service indexing awesome lists of open source software.

https://github.com/walkr/nanoservice

nanoservice is a small Python library for writing lightweight networked services using nanomsg
https://github.com/walkr/nanoservice

nanomsg python

Last synced: about 1 month ago
JSON representation

nanoservice is a small Python library for writing lightweight networked services using nanomsg

Awesome Lists containing this project

README

        

nanoservice
===========
nanoservice is a small Python library for writing lightweight networked services
using [nanomsg](http://nanomsg.org/)

With nanoservice you can break up monolithic applications into small,
specialized services which communicate with each other.

[![Build Status](https://travis-ci.org/walkr/nanoservice.svg?branch=master)](https://travis-ci.org/walkr/nanoservice)

## Install

1) Make sure you have the nanomsg library installed:

```shell
$ git clone [email protected]:nanomsg/nanomsg.git
$ ./configure
$ make
$ make check
$ sudo make install
```

For more details visit the official [nanomsg repo](https://github.com/nanomsg/nanomsg)

On OS X you can also do:

```shell
$ brew install nanomsg
```

2) Install nanoservice:

From project directory

```shell
$ make install
```

Or via pip

```shell
$ pip install nanoservice (it's broken)
```

## Example Usage

The service:

```python
from nanoservice import Responder

def echo(msg):
return msg

s = Responder('ipc:///tmp/service.sock')
s.register('echo', echo)
s.start()
```

```shell
$ python echo_service.py
```

The client:

```python
from nanoservice import Requester

c = Requester('ipc:///tmp/service.sock')
res, err = c.call('echo', 'hello world’)
print('Result is {}'.format(res))
```

```shell
$ python my_client.py
$ Result is: hello world
```

## Other

To run tests:

```shell
$ make test
```

To run benchmarks

```shell
$ make bench
```

Check out examples directory for more examples.

MIT Licensed