Skip to main content

A transport for OaaS that uses a single grpc function. It should work out of the box for most simple scenarios.

Installation

pip install oaas_simple

Usage

To get a process that does both the client and the server:

oaas.register_server_provider(OaasGrpcTransportServer(port=9000))
oaas.register_client_provider(OaasGrpcTransportClient())

oaas.serve()

Exposing services is done via regular oaas decorators:

@oaas.service("test-service")
class TestCallService:
    def echo_data(self, *, data: str) -> str:
        return data

Again for consumers:

@oaas.client("test-service")
class TestCallClient:
    def echo_data(self, *, data: str) -> str:
        ...

In order to make the services find each other you need a registry. You can fire up the embedded registry:

python -m oaas_simple.registry

The only requirement is that the registry listens on port 8999

Minimal Client

import oaas
import oaas_simple


@oaas.client("swag")
class Swag:
    def print_stuff(message: str) -> str:
        ...


oaas.register_client_provider(oaas_simple.OaasSimpleClient())


swag = oaas.get_client(Swag)

print(swag.print_stuff("abc"))

Minimal Server

import oaas
import oaas_simple


@oaas.service("swag")
class Swag:
    def print_stuff(self, message: str) -> str:
        print(message)
        return f"from server {message}"

# it needs the client to find the registry, since the registry is also an
# oaas.service("oaas-registry")
oaas.register_client_provider(oaas_simple.OaasSimpleClient())
oaas.register_server_provider(oaas_simple.OaasSimpleServer(port=9000))

oaas.serve()
oaas.join()

Metadata

Release files for oaas_simple 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for oaas_simple 1.3.0
File Size Uploaded
oaas_simple-1.3.0.tar.gz 8.6 kB Details

Release files / oaas_simple-1.3.0.tar.gz

Download URL oaas_simple-1.3.0.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
6d342f122328fafc4c00df3f100d009f0b37717a3560e02a9eae3a9d5865236c
BLAKE2b-256 checksum
How to use checksums
458ac2b4e823623ca4a35447b094f154ed72ce860921832ff8a3464bb517d6ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.8

Release history Release notifications | RSS feed

This release

1.3.0 This release

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.3

1 release file

1.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page