Skip to content

Commit

Permalink
Merge pull request #8 from Danangjoyoo/docs/readme-1
Browse files Browse the repository at this point in the history
[DOCS] Update Readme 1
  • Loading branch information
Danangjoyoo committed Jan 17, 2024
2 parents f3029c6 + b65f0b7 commit 7327ae0
Showing 1 changed file with 107 additions and 4 deletions.
111 changes: 107 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,108 @@
# oborpc
OBORPC (Object Oriented RPC)
# Description
An easy to build RPC based on Object Oriented Programming. Build your RPC in seconds. Built-in setup for FastAPI and Flask.

# Version
v0.0.2
# Installation
```bash
pip install oborpc
```

# Basic Examples
1. Create `calculator.py` as your base
```
from oborpc.base import meta
from oborpc.decorator import procedure
class Calculator(meta.OborBase):
@procedure
def add(self, a: int, b: int):
pass
@procedure
def subtract(self, a: int, b: int):
pass
class CalculatorServer(Calculator):
def tambah(self, a: int, b: int):
print(f"adding {a} and {b}")
return a+b
def subtract(self, a: int, b: int):
print(f"subtracting {a} and {b}")
return a - b
```

2. Create your App, below we give 2 examples how to do it with Flask or FastAPI

- using Flask
```
from oborpc.builder import FlaskServerBuilder
from calculator import CalculatorServer
from flask import Flask
calculator_server = CalculatorServer()
server_builder = FlaskServerBuilder("http://localhost", 9000)
calculator_blueprint = server_builder.build_blueprint_from_instance(
calculator_server, "calculator", "calculator"
)
app = Flask(__name__)
app.register_blueprint(calculator_blueprint)
app.run(port=8000)
```

- using FastAPI
```
from oborpc.builder import FastAPIServerBuilder
from calculator import CalculatorServer
calculator_server = CalculatorServer()
server_builder = FastAPIServerBuilder("http://localhost", 8000)
calculator_router = server_builder.build_router_from_instance(
calculator_server, prefix=""
)
from fastapi import FastAPI
app = FastAPI()
app.include_router(calculator_router)
```

3. Create client, you can create a simple `client.py` or a client application
- simple `client.py``
```
from oborpc.builder import ClientBuilder
from calculator import Calculator
calculator = Calculator()
client_builder = ClientBuilder("http://localhost", 8000)
client_builder.build_client_rpc(calculator)
print(calculator.add(1,2))
```

- client application
```
from calculator import Calculator
from fastapi import FastAPI
from oborpc.builder import ClientBuilder, FastAPIServerBuilder
## RPC setup
calculator = Calculator()
clientBuilder = ClientBuilder("http://localhost", 9000)
clientBuilder.build_client_rpc(calculator)
## application
app = FastAPI()
@app.get("/calculator/add")
def get_add_results(a: float, b: float):
return calculator.add(a, b)
```

4. Your RPC is ready to go!

0 comments on commit 7327ae0

Please sign in to comment.