Skip to content

Commit

Permalink
Merge pull request #25 from robertbetts/develop
Browse files Browse the repository at this point in the history
Merging documentation work into main
  • Loading branch information
robertbetts authored Oct 5, 2023
2 parents 582b119 + 9fe4699 commit 808d83f
Show file tree
Hide file tree
Showing 12 changed files with 296 additions and 137 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/poetry-pytest-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,12 +70,12 @@ jobs:
#----------------------------------------------
- name: Install dependencies
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction --no-root
run: poetry install --all-extras --no-interaction --no-root
#----------------------------------------------
# install your root project, if required
#----------------------------------------------
- name: Install library
run: poetry install --no-interaction
run: poetry install --all-extras --no-interaction
#----------------------------------------------
# run test suite and output coverage file
#----------------------------------------------
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ If you have code that you want to easily scale, communicate with other services

**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
Expand Down
2 changes: 1 addition & 1 deletion docs/source/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
project = 'nuropb'
author = 'Robert Betts'
copyright = f'{year}, {author}'
release = '0.1.6'
release = '0.1.7'

# -- General configuration ---------------------------------------------------
# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
Expand Down
29 changes: 27 additions & 2 deletions docs/source/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,31 @@
# NuroPb

```{include} ../../README.md
```
## 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.**

![Diagram of an example NuroPb enabled Application or Domain Service](nuropb_diagram.png)

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/).

```{toctree}
:hidden:
Expand Down
Binary file added docs/source/nuropb_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 2 additions & 3 deletions docs/source/quickstart.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
# Quickstart

The best way to get started is to look at the examples and the `examples/README.md` file.

These quick fire steps are the minimum to get going.:
The best way to get started is to look through the [examples](#examples). These quick fire steps are the
minimum to get going.:
* Install Python >= 3.10
* An accessible RabbitMQ >= 3.8.0 + Management Plugin
* Install the nuropb package, `pip install nuropb`
Expand Down
2 changes: 1 addition & 1 deletion docs/source/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ traitlets==5.10.1
# nbsphinx
typing-extensions==4.8.0
# via sphinx-autodoc2
urllib3==2.0.5
urllib3==2.0.6
# via requests
webencodings==0.5.1
# via
Expand Down
28 changes: 28 additions & 0 deletions docs/utils/nuropb_domain_service.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from diagrams import Diagram, Cluster
from diagrams.onprem.queue import RabbitMQ
from diagrams.programming.language import Python
from diagrams.programming.framework import Spring
from diagrams.programming.framework import React

from diagrams.aws.compute import EC2
from diagrams.aws.network import ELB

with Diagram("Logical Assembly", direction="LR"):

with Cluster("Application or Domain Service"):

gateway = ELB("NuroPb Gateway")

with Cluster("Microservices", direction="LR"):
broker = RabbitMQ("NuroPb Broker")
EC2("Worker A") >> broker << EC2("Worker B")
EC2("Worker C") >> broker << EC2("Worker D")

gateway >> broker

enterprise_mesh = ELB("Enterprise Mesh")

[Python("AI/ML"), Spring("Application"), React("End Users")] >> gateway
gateway >> enterprise_mesh


27 changes: 27 additions & 0 deletions docs/utils/nuropb_gw_diagram.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
from diagrams import Diagram, Cluster, Edge
from diagrams.onprem.queue import RabbitMQ
from diagrams.programming.language import Python
from diagrams.programming.framework import Spring
from diagrams.programming.framework import React

from diagrams.aws.compute import EC2
from diagrams.aws.network import ELB

with (Diagram(direction="LR")):

with Cluster("Application or Domain Service", direction="LR"):

service_a = EC2("Service A")
service_b = EC2("Service B")
service_c = EC2("Service C")
broker = RabbitMQ("NuroPb Broker")
gw = ELB("NuroPb Gateway")
service_a >> broker << service_b
gw >> Edge(color="darkgreen") << broker << service_c

with Cluster("Application Consumers", direction="TB"):
[Python("AI/ML/Jupyter"), Spring("Applications"), React("End Users")] >> gw

with Cluster("Direct Broker Consumers", direction="TB"):
broker << Python("NuroPb Consumer")

Loading

0 comments on commit 808d83f

Please sign in to comment.