A grpc framework
Project description
Alicorn
Alicorn is a Python grpc framework with built in dependency injection and middleware management.
NB: This project is in alpha status at the moment, some functionality may be missing.
from alicorn import Alicorn, GrpcContext, Depends
from helloworld_pb2 import HelloWorldRequest, HelloWorldResponse
from helloworld_pb2_grpc import HelloWorldServicer
app = Alicorn()
app.debug = True
class Database:
pass
@app.service
class HelloWorld(HelloWorldServicer):
def SayHello(self, request: HelloWorldRequest, context: GrpcContext, *, database: Database = Depends()):
return HelloWorldResponse(message=f"Hello {request.name}")
if __name__ == '__main__':
app.run()
Features
- Dependency Injection
- before_request, after_request, after_request_teardown request handlers
- .proto defined grpc services or python-defined grpc services
- Extension Support
Planned Future Features
- Incoming data validation (using proto rules)
- More internal extensions
- Other grpc server support (besides the Google implementation)
Requirements
- Python 3.7+
- grpcio
Installation
From PyPi: pip install alicorn
or pipenv install alicorn
To Do
- Finish Documentation
- Command-Line Options
- Better examples
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
alicorn-0.0.3.tar.gz
(16.9 kB
view details)
Built Distribution
alicorn-0.0.3-py3-none-any.whl
(23.8 kB
view details)
File details
Details for the file alicorn-0.0.3.tar.gz
.
File metadata
- Download URL: alicorn-0.0.3.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17729af14f5ff38bb7bc30e3856d656f1c6eb53ade4d3e376fc0ba9cc8fe392d |
|
MD5 | 5460067cd07e76a2804ad6fa15df9ee5 |
|
BLAKE2b-256 | 25209c0d1f7beb7225aee22f07bb60174d3c2cd8c030b83c169f8e329d272c7b |
File details
Details for the file alicorn-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: alicorn-0.0.3-py3-none-any.whl
- Upload date:
- Size: 23.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.46.1 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6cea38a068e4ea79e9f3ea56303d9adbd12979376bd686e8e7c177b0ffa4107b |
|
MD5 | b3a024e5e43d6c5cb8f2a015fff5f3e7 |
|
BLAKE2b-256 | 287bdb3201e0ced9ddb7a06aa51da81cd788daf83d0ec677dd270f2bcf205da1 |