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

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