Skip to content

v0.4.0

Pre-release
Pre-release

Choose a tag to compare

@chris-olszewski chris-olszewski released this 29 Apr 20:25
· 53 commits to main since this release
a9481aa

⚠️ THIS IS AN EARLY RELEASE AND COMPATIBILITY WILL NOT BE MAINTAINED

What'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.

#1226

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.

#1236

Miscellaneous

  • Move Core-specific test utilities out of the Common crate #1237
  • Updated upstream API definitions: #1234

Full Changelog: v0.3.0...main