Releases: restatedev/sdk-rust
v0.7.0
AWS Lambda support
You can now use the Rust SDK with AWS Lambda, check out https://github.com/restatedev/sdk-rust?tab=readme-ov-file#running-on-lambda for more details on how to set it up.
Invocation retry policy
When used with Restate 1.5, you can now configure the invocation retry policy from the SDK directly. See https://github.com/restatedev/restate/releases/tag/v1.5.0 for more details on the new invocation retry policy configuration.
What's Changed
- Refactor Endpoint internals. by @slinkydeveloper in #71
- Add lambda runtime support by @muhamadazmy in #70
- Add new retry policy options by @slinkydeveloper in #73
- Clarify max attempts meaning by @slinkydeveloper in #74
New Contributors
- @muhamadazmy made their first contribution in #70
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Introduce new feature bind_with_options, allowing to customize service and handler configuration options. Please note, this feature works only with Restate 1.4 onward.
What's Changed
- Discovery protocol v3 by @slinkydeveloper in #62
- Update shared core by @slinkydeveloper in #63
- Update shared core by @slinkydeveloper in #66
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
Schema generation
By enabling the optional dependency schemars, the SDK will generate and propagate JSON schemas of your handlers input/output, which will be available in the generated OpenAPI and in the Restate Playground. For more details on the schema generation, and info on how to tune it, check the https://docs.rs/restate-sdk/latest/restate_sdk/serde/trait.PayloadMetadata.html documentation.
Thanks to @hxphsts for the contribution!
New restate-sdk-testcontainers module
We've released a first version of the testcontainers integration, that simplifies testing locally your restate service. Check https://github.com/restatedev/sdk-rust/blob/main/testcontainers/tests/test_container.rs for a full example.
Thanks to @kpwebb for the contribution.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
We're pleased to announce the release of Rust SDK 0.4.0, in combination with Restate 1.3.
Check out the announcement blog post for more details about Restate 1.3 and the new SDK features: https://restate.dev/blog/announcing-restate-1.3/
This SDK introduces the following new APIs:
- Support the new features of Restate 1.3, check
InvocationHandlefor more details - You can now use the new macro
select!(aliketokio::select) to await concurrently for multiple operations to complete. Request::send_with_delaywas renamed toRequest::send_after- The SDK now provides a utility to use in combination with
tracingthat hides logs on replay. Check https://docs.rs/restate-sdk/latest/restate_sdk/filter/struct.ReplayAwareFilter.html for more details.
Rust SDK 0.4.0 can be used in combination with Restate 1.3 onward.
Full changelog
- Add note on retry policies for ctx.run by @gvdongen in #39
- Improve workflow docs by @gvdongen in #40
- Use test suite 2.4 by @jackkleeman in #37
- rust testcontainer framework by @kpwebb in #41
- Pin sha2 version by @slinkydeveloper in #45
- Service Protocol V4 by @slinkydeveloper in #46
- Fix cancel test by @slinkydeveloper in #47
- Replay aware logger by @slinkydeveloper in #48
- Update test suite by @slinkydeveloper in #49
- Protocol V5 by @slinkydeveloper in #50
- First pass at a select statement by @slinkydeveloper in #51
- Add CLA automation by @tillrohrmann in #52
- Fix little bug with run cancellation by @slinkydeveloper in #54
- Dependency bumping by @slinkydeveloper in #55
- Bump SDK versions by @slinkydeveloper in #57
New Contributors
- @jackkleeman made their first contribution in #37
- @kpwebb made their first contribution in #41
- @tillrohrmann made their first contribution in #52
Full Changelog: v0.3.2...v0.4.0
v0.3.2
What's Changed
- Add MSRV computed with
cargo msrvby @slinkydeveloper in #26 - Example with periodic task by @slinkydeveloper in #28
- Make endpoint handle function independent of other handlers by @h7kanna in #29
- No need for the run future to be
Syncby @slinkydeveloper in #32 - Documentation for Rust SDK by @gvdongen in #34
- Fix docs landing page by @gvdongen in #36
New Contributors
Full Changelog: v0.3.0...v0.3.2
v0.3.0
Breaking changes
- The
ctx.runAPI now does not requirenameas first parameter anymore - Renamed
Endpoint.with_servicetoEndpoint.bind - This SDK is compatible only with Restate >= 1.1
New features
- It is now possible to configure a retry policy for
ctx.run - Now std
Resultcan be returned from handlers, and similarly any error type can be used. Behind the hood, the error type will always be converted toHandlerError, following the rules described here: https://docs.rs/restate-sdk/latest/restate_sdk/errors/struct.HandlerError.html
What's Changed
- Rust docs by @slinkydeveloper in #17
- Fix bad indendation in docs by @slinkydeveloper in #18
- Add x_restate_server header by @slinkydeveloper in #21
- Side effect retry by @slinkydeveloper in #20
- Now a standalone Result can be returned from handlers by @slinkydeveloper in #22
- Naming improvements by @slinkydeveloper in #23
- Docs improvements by @slinkydeveloper in #24
- Add rust toolchain file by @slinkydeveloper in #25
Full Changelog: v0.2.0...v0.3.0
v0.2.0
New features
- Generated clients from the respective service/object/workflow macros. To use them, just use
context.service_client::<MyTraitClient>()et al. - You can now use the hyper integration alone, without using our
HttpServerthat depends ontokio, by enabling the featurehyperand disabling the featurehttp_server - Now the context methods are defined in traits
- Add
ctx.rand()andctx.rand_uuid()for deterministic random number/uuid generation - Add
ctx.headers()andctx.headers_mut()to access the ingress headers - Add identity verification
Breaking changes
- Renamed
HyperServertoHttpServer - Removed context
send,send_delayandcall, replaced withctx.request(..).send()andctx.request(..).call()(in future thisRequeststruct will allow to configure some parameters of the request, such as headers)
Full Changelog: v0.1.0...v0.2.0