Rust at the Core - Accelerating Polyglot SDK Development

Abstract

Developing SDKs for your users in multiple languages can come at a high cost - especially if you need to implement complex logic client side, but traditionally options for sharing logic across those languages have been quite limited.

Rust provides a means of defining shared logic usable from multiple languages, much like you could with C, without having to… write C. Combined with an IDL for representation of shared objects, you have a powerful means to keep your language-specific layer thin.

In this presentation I’ll explain the architecture of Temporal’s open source SDKs, and how we use it to centralize some extremely complex logic across 5 user-facing SDKs written in different languages.

Topics will include:

  • What Rust helps us with
  • IDL choices and serialization concerns
  • Asynchronous task representations across language boundaries
  • Compiling to WebAssembly to avoid native extension issues
  • Staying idiomatic in the host language
  • Limitations and pitfalls

Speaker

Spencer Judge

Engineering Manager @Temporal Technologies, previously Senior Software Engineer @Transparent Systems, Senior Software Engineer @ Tableau Software

Spencer has worked on tools, libraries, and products for other Developers for over a decade. He has a longstanding interest in, and passion for, learning and developing in multiple languages.

Currently he leads the SDK team at Temporal, which develops libraries providing durable execution in 8 languages.

Spencer lives in Seattle and enjoys spending his free time on endurance sports and rock climbing.
 

Read more

From the same track

Session

Keeping the Mainline Green Across Diverse Language Monorepos

At Uber’s scale, ensuring an always-green mainline while processing hundreds of changes per hour is a massive challenge— especially when those changes span multiple language monorepos supporting dozens of business-critical apps.

Speaker image - Dhruva Juloori

Dhruva Juloori

Senior Software Engineer @Uber, Core Contributor to SubmitQueue (Uber's CI System at Scale), Expert in Machine Learning, Distributed Systems, and Developer Productivity