gRPCAlchemy
The Python micro framework for building gPRC application based on official gRPC project.
Free software: MIT license
Documentation: https://grpcalchemy.readthedocs.io.
Installation
$ pipenv install grpcalchemy
✨🍰✨
Only Python 3.6+ is supported.
Example
Server
from grpcalchemy.orm import Message, StringField
from grpcalchemy import Server, Context, grpcmethod
class HelloMessage(Message):
text: str
class HelloService(Server):
@grpcmethod
def Hello(self, request: HelloMessage, context: Context) -> HelloMessage:
return HelloMessage(text=f'Hello {request.text}')
if __name__ == '__main__':
HelloService.run()
Then Using gRPC channel to connect the server:
from grpc import insecure_channel
from protos.helloservice_pb2_grpc import HelloServiceStub
from protos.hellomessage_pb2 import HelloMessage
with insecure_channel("localhost:50051") as channel:
response = HelloServiceStub(channel).Hello(
HelloMessage(text="world")
)
Features
gPRC Service Support
- gRPC Message Support
Scalar Value Types
Message Types
Repeated Field
Maps
Define Message With Type Hint
Middleware
App Context Manger
Error Handler Support
Streaming Method Support
gRPC-Health Checking and Reflection Support (Alpha)
Multiple Processor Support
TODO
Test Client Support
Async Server Support
History
0.7.*(2021-03-20)
Improve initialize function of message
Remove default feature in message
Refactor composite message Type
Support gRPC with xDS
Add PROTO_AUTO_GENERATED setting to make runtime proto generation optional
0.6.*(2020-10-27)
fix [#36] compatibility in windows
fix [#34] compatibility in windows
gRPC-Health Checking and Reflection Support (Alpha)
Multiple Processor Support
0.5.0(2020-04-27)
Support Streaming Method
Deprecate request parameter in app context and handle exception
0.4.0(2019-09-24)
Support related directory path to generate protocol buffer files
Enable use type hint to define message
Add error handle to handle Exception
Add get_blueprints to get blueprints need to register
0.3.0(2019-08-19)
0.2.7-10(2019-04-16)
Support SSL
Improve Implement of Server with grpc.server
Support YAML file in Config Module
Improve Config Module
Add context in current rpc
0.2.5-6(2019-03-06)
Implement Rpc Context
Improve Config Module
0.2.4(2019-03-01)
Implement Globals Variable
Implement APP Context
0.2.2-3 (2019-02-26)
Improve Config module
Improve rpc_call_wrap
0.2.1 (2019-02-14)
Implement Own gRPC Server
Implement gRPC Server Test Client
0.2.0 (2019-01-30)
Change gRPCAlchemy Server register to register_blueprint
Make gRPCAlchemy Server inherit from Blueprint
Support Json Format
Support Inheritance Message
0.1.6 (2019-01-21)
Various bug-fixes
Improve tests
Change Client API
Add PreProcess And PostProcess
Import Config Object
Add Event Listener
Change Field Object Into Descriptor
0.1.5 (2018-12-14)
Various bug-fixes
Improve tests
Add client
0.1.4 (2018-12-11)
First release on PyPI.
Metadata
Release files for grpcalchemy 0.7.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| grpcalchemy-0.7.3.tar.gz | 30.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| grpcalchemy-0.7.3-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 50.2 kB
Release files / grpcalchemy-0.7.3.tar.gz
| Download URL | grpcalchemy-0.7.3.tar.gz |
|---|---|
| Size | 30.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d69fe4ecf097854e47c48e95b93e05c239547a202a1fc0b4e5f250dcbaa9db4c
|
|
BLAKE2b-256 checksum How to use checksums |
d0614fba12b53af106ac06ce6767724c50bef6e245783002aa80e2e7e99d6bae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
|
Release files / grpcalchemy-0.7.3-py2.py3-none-any.whl
| Download URL | grpcalchemy-0.7.3-py2.py3-none-any.whl |
|---|---|
| Size | 19.5 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
253637f9909654728aee9522b65743cad6cb9e098e3f76c4733ce92b590f6230
|
|
BLAKE2b-256 checksum How to use checksums |
7f9867e6312a5f4317118102125ac4d674e3b69813b45087dfb6f528df5553cc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
|