An easy setup object oriented RPC. Built-in setup for FastAPI and Flask
Project description
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!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file oborpc-0.3.0.tar.gz.
File metadata
- Download URL: oborpc-0.3.0.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 |
b66bb62ef3649120216075e76808afef8e96076a1a3e794a1303246e2e26cf80
|
|
| MD5 |
2e0612244874ab0c1d227d16f9001b09
|
|
| BLAKE2b-256 |
2d88b55f7dfb48f9e71f71753b4c2c6ade9a79c8265a7d91364845cd167afd34
|
File details
Details for the file oborpc-0.3.0-py3-none-any.whl.
File metadata
- Download URL: oborpc-0.3.0-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 |
743afe2e04d26ca23ae1e5f7350255dc30460220827e3f8ddb8bb89b458f2d86
|
|
| MD5 |
e76a25f1b61af1aefc76bd37315ea2a4
|
|
| BLAKE2b-256 |
e43bd4d1ef54dd3c4f018be8051e9355ab117fc177649600a351fd9428e447eb
|