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
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
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
|