# NuroPb

## Plumbing, routing and communications for Distributed, Asynchronous, Event Driven, Services 

[![codecov](https://codecov.io/gh/robertbetts/nuropb/branch/main/graph/badge.svg?token=DVSBZY794D)](https://codecov.io/gh/robertbetts/nuropb)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![CodeFactor](https://www.codefactor.io/repository/github/robertbetts/nuropb/badge)](https://www.codefactor.io/repository/github/robertbetts/nuropb)
[![License: Apache 2.0](https://img.shields.io/pypi/l/giteo)](https://www.apache.org/licenses/LICENSE-2.0.txt)
[![Documentation Status](https://readthedocs.org/projects/nuropb/badge/?version=latest)](https://nuropb.readthedocs.io/en/latest/?badge=latest)


If you have code that you want to easily scale, communicate with other services or provide access to consumers, or:
* You'd like to scale a service horizontally, many times over at an unknown scale.
* Your service needs to communicate with other services
* Implement event driven processes and flows
* A need for websocket endpoints that integrate seamlessly to backend services and events
* A proxy for REST Consumers to interact with asynchronous services 
* A growing team of Ml-Ops and Datascience engineers who'd like to deploy their models as services
* Require service gateway that bridges cloud VPNs and on-premise networks
* Wrap an existing or legacy service to benefit from any of the above

**If any of these are of interest to you, NuroPb is worth considering.**

<img src="docs/source/nuropb_diagram.png" alt="Diagram of an example NuroPb enabled Application or Domain Service" width="400px">

NuroPb is available under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0.html), 
this web site including all documentation is licensed under [Creative
Commons 3.0](https://creativecommons.org/licenses/by/3.0/).
