Rust SDK for Temporal?

Hello,

I would like to try out the Rust SDK for Temporal. I know it hasn’t been officially released yet, but would it be possible to get access to what is currently available, even if it is still a work-in-progress?

Thank you.

We’ve just started the development of the core SDK that is expected to be the underlying library for all other SDKs in the future. This SDK is in Rust and we expect to open the repository pretty soon.

Note that we are not planning to build a Rust SDK on top of it right away. The first project will be Typescript and then Python.

Thank you for the quick response. So I assume that building workflows and activities in Rust is still quite a ways off, then.

Activities will be pretty easy to add on top of the core SDK. Rust workflows will take some time.

Thanks for the explanation! Can’t wait to see the new SDK(s).

Hi maxim, is there any sort of timeframe on when the rust sdk will be made available (even partially), are we looking at months? weeks?

We will make the repository public within a few weeks. Getting it to feature complete state and then production quality will take months.

Hi maxim,

Is there a way you could release it publicly earlier, it would help we could contribute to it or also see what the code is going to look like. We’d really like to use temporal but having no visibility over it being worked on is very hard.

I understand Python is also in the works but it is on github and the progress is visible. It helps alot even though its not complete!

Hey there!

So we’ve just begun serious development of the Core SDK Max mentioned. We expect to make that repo public next week but it is far, far from feature complete as mentioned. However, we want to give you folks the visibility you’re asking for so we’re gonna get it out there with a caveat that it is by no means ready for use.

As Max mentions, Rust workflows are gonna take a bit. Our main priority is to get Core working so we can have a solid platform for future SDKs, and an opportunity to refactor the old ones to be based on it so they can benefit from all the Rust goodness. That said we are more than happy to hear all your ideas and input about what you’d like out of a pure Rust workflow & activity experience.

Keep an eye out on our GH! Thanks!

Thanks Spencer,

Looking forward to seeing it on GH!

Thanks

Took us slightly longer than expected, but it’s public! Feel free to take a look!

3 Likes

Hi,

What is the plan for the existing Golang SDK and worker runtime? Will the Workflow code based on the SDK remain backward compatible/mostly compatible with this approach?

Thanks,
Harsha

We consider moving Golang SDK to the sdk-core. The expectation is that it will remain fully compatible.

Hi, what are the recommendations for using Temporal from Rust. The sdk-core/sdk directory seems to be mostly used for testing?

1 Like

I’ve added a section to the Core readme to address this question since it comes up every so often: GitHub - temporalio/sdk-core: Core Temporal SDK that can be used as a base for language specific Temporal SDKs

1 Like

Hi :wave: are there any updates on a possible timeline for official support of the Rust SDK?
I see it’s considered pre alpha and the readme here linked above still mentions no official plans to productionize. Since the last update in this thread more SDKs have been ported to sdk-core so maybe Rust will come next? :slightly_smiling_face:

2 Likes

I’ll add to this question. I brought Temporal into my last job, which was primarily Golang. But we cannot consider it in my new company unless it supports Rust as a first class API or SDK.

4 Likes

Just watched the Wasmcloud + Temporal conference talk by Dan Norris and his hint, hint, wink, wink :wink: during the talk for official Rust SDK support. Would be fabulous to have that. PS, the talk:

https://www.temporal.io/replay/videos/zero-downtime-deploys-with-temporal-and-wasmcloud

We’re currently using the Rust “SDK” that is inside the Core SDK repository. It’s a pretty ok experience if you take the care to pin the version to a commit that works, and are willing to flesh out the parts the other SDKs offer, e.g. waiting for the completion of a workflow wasn’t implemented, so we just did it the way TS SDK does (fetch history, wait for the “workflow close” event).

That being said, I wouldn’t advise to use it. But alas, it is… possible. Plus, the experience is already more straightforward than TS: no v8 isolate, just plain old Rust functions. Only caveat is that it’s quite easy to use non-deterministic APIs.

We would also be willing to switch to temporal and temporal cloud with a good dedicated and supported rust SDK, but are holding off as majority of our job and scheduling infrastructure are rust based.