https://github.com/restatedev/sdk-python
Restate SDK for Python
https://github.com/restatedev/sdk-python
durable-execution python workflow
Last synced: 2 months ago
JSON representation
Restate SDK for Python
- Host: GitHub
- URL: https://github.com/restatedev/sdk-python
- Owner: restatedev
- License: mit
- Created: 2024-07-05T10:14:09.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2026-04-01T18:49:51.000Z (3 months ago)
- Last Synced: 2026-04-02T01:48:02.220Z (3 months ago)
- Topics: durable-execution, python, workflow
- Language: Python
- Homepage:
- Size: 784 KB
- Stars: 61
- Watchers: 3
- Forks: 14
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://docs.restate.dev)
[](https://github.com/restatedev/examples)
[](https://discord.gg/skW3AZ6uGd)
[](https://twitter.com/intent/follow?screen_name=restatedev)
# Restate Python SDK
[Restate](https://restate.dev/) is a system for easily building resilient applications using *distributed durable async/await*. This repository contains the Restate SDK for writing services in **Python**.
## Community
* π€οΈ [Join our online community](https://discord.gg/skW3AZ6uGd) for help, sharing feedback and talking to the community.
* π [Check out our documentation](https://docs.restate.dev) to get quickly started!
* π£ [Follow us on Twitter](https://twitter.com/restatedev) for staying up to date.
* π [Create a GitHub issue](https://github.com/restatedev/sdk-typescript/issues) for requesting a new feature or reporting a problem.
* π [Visit our GitHub org](https://github.com/restatedev) for exploring other repositories.
## Using the SDK
**Prerequisites**:
- Python >= v3.10
To use this SDK, add the dependency to your project:
```shell
pip install restate_sdk
```
## Versions
The compatibility with Restate is described in the following table:
| Restate Server\sdk-python | < 0.6 | 0.6 - 0.7 | 0.8 - 0.9 | 0.10 - 0.17 |
|---------------------------|------------------|-----------|------------------|------------------|
| < 1.3 | β
| β | β | β |
| 1.3 | β
| β
| β
(1) | β
(2) |
| 1.4 | β
| β
| β
| β
(2) |
| 1.5 | β (3) | β
| β
| β
|
| 1.6 | β (3) | β
| β
| β
|
(1) **Note** The new Service/Object/Workflow constructor fields and the decorator fields `inactivity_timeout`, `abort_timeout`, `journal_retention`, `idempotency_retention`, `ingress_private`, `workflow_retention` work only from Restate 1.4 onward. Check the in-code documentation for more details.
(1) **Note** The new Service/Object/Workflow constructor field and the decorator field `invocation_retry_policy` works only from Restate 1.4 onward. Check the in-code documentation for more details.
(3) **Warning** SDK versions < 0.6 are deprecated, and cannot be registered anymore. Check the [Restate 1.5 release notes](https://github.com/restatedev/restate/releases/tag/v1.5.0) for more info.
## Contributing
Weβre excited if you join the Restate community and start contributing!
Whether it is feature requests, bug reports, ideas & feedback or PRs, we appreciate any and all contributions.
We know that your time is precious and, therefore, deeply value any effort to contribute!
### Local development
* Python 3
* PyEnv or VirtualEnv
* [just](https://github.com/casey/just)
* [Rust toolchain](https://rustup.rs/)
Set up your virtual environment using the tool of your choice, e.g. VirtualEnv:
```shell
python3 -m venv .venv
source .venv/bin/activate
```
Install the build tools:
```shell
pip install -r requirements.txt
```
Now build the Rust module and include opt-in additional dev dependencies:
```shell
maturin dev -E test,lint
```
You usually need to build the Rust module only once, but you might need to rebuild it on pulls.
For linting and testing:
```shell
just verify
```
## Releasing the package
Pull latest main:
```shell
git checkout main && git pull
```
**Update module version in `Cargo.toml` and run a local build to update the `Cargo.lock` too**, commit it. Then push tag, e.g.:
```
git tag -m "Release v0.1.0" v0.1.0
git push origin v0.1.0
```