v0.4.0
Pre-releaseWhat's Changed
Rust SDK Public Preview
The Rust SDK is now officially in Public Preview. Being in public preview means that APIs are fairly stable and the core functionality has been implemented. Although no exact timetable is set, we hope it will not be too long before 1.0. Please use the SDK and give feedback to help us get to GA faster.
Structured Error Handling
The Rust SDK now surfaces workflow and activity failures through a more structured set of Rust
error types instead of largely exposing raw Temporal Failure Protobuf messages and asking callers to inspect
them manually.
In this release, the SDK maps those failures into meaningful Rust types such as
ApplicationFailure, ActivityExecutionError, ChildWorkflowStartError,
ChildWorkflowExecutionError, and ChildWorkflowSignalError.
This release also reshapes activity error construction. ActivityError::Retryable and
ActivityError::NonRetryable have been replaced with ActivityError::Application, which carries
an ApplicationFailure. That gives a single structured place to express retryability, type name,
details, next retry delay, and other application failure metadata.
Temporal SDK error types are preserved faithfully even when they are wrapped in error
types such as anyhow::Error, which means retryability, cancellation details, and other metadata survive conversion.
Feature Cleanup
We also cleaned up crate features so Rust SDK users can opt out of convenience
integrations they do not want in their dependency graph.
In particular, envconfig and prometheus are now exposed as temporalio-sdk crate features, which
means applications can disable default features and opt back into only the integrations they use.
Miscellaneous
- Move Core-specific test utilities out of the Common crate #1237
- Updated upstream API definitions: #1234
Full Changelog: v0.3.0...main