Dapr is a portable, event-driven, serverless runtime for building distributed applications across cloud and edge.
Dapr SDK for Python allows you to implement the Virtual Actor model, based on the actor design pattern. This SDK can run locally, in a container and in any distributed systems environment.
This includes the following packages:
- dapr.actor: Actor Framework
- dapr.clients: Dapr clients for Dapr building blocks
- dapr.conf: Configuration
- dapr.serializers: serializer/deserializer
- dapr.proto: Dapr gRPC autogenerated gRPC clients
- flask_dapr: flask extension for Dapr
Note: Dapr SDK for python is currently under community development in alpha phase.
- Initial implementation of Actor Runtime/Manager/Proxy
- Actor service invocation
- RPC style actor proxy
- Flask integration for Dapr Actor Service
- Example for Actor service invocation
- Complete tox.ini setup
- Actor state management
- Actor timer
- Actor reminder
- Enhance error handling
- Auto generated documents
- Create convenient layer wrapping gRPC and HTTP clients for Dapr
- Flask extensions for Dapr State/Pubsub/Bindings
- Official package - WIP
pip3 install dapr- Development package
pip3 install dapr-devNote: Do not install both packages.
Go to Examples
- Clone python-sdk
git clone https://github.com/dapr/python-sdk.git
cd python-sdk- Set PYTHONPATH environment
Make sure that you set PYTHONPATH environment variable to repo root path.
export PYTHONPATH=`pwd`- Install required packages
pip3 install -r dev-requirements.txt- Run unit-test
tox -e py38- Run type check
tox -e typeDocumentation is generated using Sphinx. Extensions used are mainly Napoleon (To process the Google Comment Style) and Autodocs (For automatically generating documentation). The .rst files are generated using Sphinx-Apidocs.
To generate documentation:
tox -e docThe generated files will be found in docs/_build.
pip3 install -r dev-requirements.txt
./tools/regen_grpcclient.shThis project has adopted the Microsoft Open Source Code of conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.