OBORPC
Description
An easy to build RPC based on Object Oriented Programming. Build your RPC in seconds. Built-in setup for FastAPI and Flask.
Installation
pip install oborpc
Basic Examples
- Create
calculator.pyas your base
from oborpc.base import meta
from oborpc.decorator import procedure
class Calculator(meta.RPCBase):
@procedure
def add(self, a: int, b: int):
pass
@procedure
def subtract(self, a: int, b: int):
pass
class CalculatorServer(Calculator):
def add(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
-
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) -
Create client, you can create a simple
client.pyor 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) - simple
-
Your RPC is ready to go!
Metadata
Release files for oborpc 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| oborpc-0.3.1.tar.gz | 11.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| oborpc-0.3.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.3 kB
Release files / oborpc-0.3.1.tar.gz
| Download URL | oborpc-0.3.1.tar.gz |
|---|---|
| Size | 11.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e951471a3776ee636952843592f5933766d0f604bb1da2cbb147467557e4bd61
|
|
BLAKE2b-256 checksum How to use checksums |
6269d61933ba91a78b9a3f5b55fc357006989f88421220f6e5a47357a720b9e2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.21
|
Release files / oborpc-0.3.1-py3-none-any.whl
| Download URL | oborpc-0.3.1-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
aac26dc7d147347f57542819e8a703ae9bf5746a83bb5a5adc1f16ddb2b356b3
|
|
BLAKE2b-256 checksum How to use checksums |
031bb60c6e0f44d55fc29d14240a74f1919d287a0a2971b8335430d9fdfa75bb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.21
|