Build distributed applications using the Dapr Python SDK. The Dapr Python SDK provides client libraries to interact with Dapr building blocks and APIs.

## Resources

- [Dapr Python SDK GitHub](https://github.com/dapr/python-sdk)
- [Dapr Python SDK PyPI](https://pypi.org/project/dapr/)
- [Dapr Python SDK Documentation](https://docs.dapr.io/developing-applications/sdks/python/)

**Prerequisites:**

- Python 3.8+ ([Download](https://www.python.org/downloads/))
- [Dapr Python Client/Server SDK](https://pypi.org/project/dapr/)

## Installation

Install the Dapr Python SDK via pip:

```bash
# Install Dapr client SDK
pip3 install dapr

# Install Dapr gRPC AppCallback service extension
pip3 install dapr-ext-grpc
```

## Dapr Client APIs

Use the Dapr Client to interact with Dapr building blocks and APIs with Python-specific examples and code samples.

- [State Management](https://docs.dapr.io/developing-applications/sdks/python/python-client/#save--get-application-state) — Store and retrieve application state using key-value pairs with Python code examples
- [Service Invocation](https://docs.dapr.io/developing-applications/sdks/python/python-client/#invoke-a-service) — Invoke methods on other services securely and reliably with Python SDK
- [Publish](https://docs.dapr.io/developing-applications/sdks/python/python-client/#publish-messages) — Publish events to topics for event-driven communication in Python
- [Bindings](https://docs.dapr.io/developing-applications/sdks/python/python-client/#interact-with-output-bindings) — Interact with external systems through input and output bindings using Python
- [Secrets Management](https://docs.dapr.io/developing-applications/sdks/python/python-client/#retrieve-secrets) — Securely retrieve secrets from configured secret stores with Python examples
- [Conversation](https://docs.dapr.io/developing-applications/building-blocks/conversation/howto-conversation-layer/) — Interact with Large Language Models (LLMs) using the Dapr Conversation API with Python

## Server Extensions

Build services that can be invoked by other services and subscribe to topics using Python.

- [Service Invocation Server](https://docs.dapr.io/developing-applications/sdks/python/python-sdk-extensions/python-grpc/#listen-for-service-invocation-requests) — Create services that can be invoked by other Dapr applications using HTTP or gRPC
- [Pub/Sub Subscriptions](https://docs.dapr.io/developing-applications/sdks/python/python-sdk-extensions/python-grpc/#subscribe-to-a-topic) — Subscribe to topics and handle messages in Python applications using HTTP or gRPC
- [Binding Invocation Handler](https://docs.dapr.io/developing-applications/sdks/python/python-sdk-extensions/python-grpc/#setup-input-binding-trigger) — Handle input bindings from external systems using HTTP or gRPC in Python

## Advanced Features

- [Actors](https://docs.dapr.io/developing-applications/sdks/python/python-actor/) — Build virtual actors with state, timers, and reminders using Python SDK
- [Workflow](https://docs.diagrid.io/develop/workflows/python-sdk) — Create durable, long-running workflows with Python code examples
- [Cryptography](https://docs.dapr.io/developing-applications/sdks/python/python-client/#cryptography) — Encrypt and decrypt data using configured cryptography components in Python
- [Distributed Lock](https://docs.dapr.io/developing-applications/sdks/python/python-client/#distributed-lock) — Acquire and release distributed locks for synchronization with Python

## Getting Started

- [Python Examples](https://github.com/dapr/python-sdk/tree/main/examples) — Samples that highlight the Python SDK Capabilities
- [Python Client Documentation](https://docs.dapr.io/developing-applications/sdks/python/python-client/) — Complete Python client SDK guide with code examples

### Catalyst Quickstarts

- [State Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/state) — Get started with state management in Catalyst
- [Pub/Sub Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/pubsub) — Get started with publish and subscribe in Catalyst
- [Service Invocation Quickstart](https://docs.diagrid.io/getting-started/quickstarts/dapr-apis/invocation) — Get started with service invocation in Catalyst
