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.1a6.tar.gz
(16.7 kB
view hashes)
Built Distribution
alicorn-0.0.1a6-py3-none-any.whl
(23.6 kB
view hashes)
Close
Hashes for alicorn-0.0.1a6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 643722f42e2bfbd1a068cf40af22931b91963df1507253fdb62fa4b7324223d2 |
|
MD5 | 73b075d1cddbae1f4c1e45b61f51261f |
|
BLAKE2b-256 | eb423f698ad885200a6444adf35ed7ddb02a8207418d5739826d4261d9db9216 |