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!
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
oborpc-0.3.1.tar.gz
(11.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
oborpc-0.3.1-py3-none-any.whl
(13.3 kB
view details)
File details
Details for the file oborpc-0.3.1.tar.gz.
File metadata
- Download URL: oborpc-0.3.1.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e951471a3776ee636952843592f5933766d0f604bb1da2cbb147467557e4bd61
|
|
| MD5 |
602b418e73b6fdbaf1f072ed9d579ab2
|
|
| BLAKE2b-256 |
6269d61933ba91a78b9a3f5b55fc357006989f88421220f6e5a47357a720b9e2
|
File details
Details for the file oborpc-0.3.1-py3-none-any.whl.
File metadata
- Download URL: oborpc-0.3.1-py3-none-any.whl
- Upload date:
- Size: 13.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aac26dc7d147347f57542819e8a703ae9bf5746a83bb5a5adc1f16ddb2b356b3
|
|
| MD5 |
038ce0f5432171e3f842b94680c4f7aa
|
|
| BLAKE2b-256 |
031bb60c6e0f44d55fc29d14240a74f1919d287a0a2971b8335430d9fdfa75bb
|