Skip to content

Conversation

@maciejdudko
Copy link
Contributor

@maciejdudko maciejdudko commented Jul 1, 2025

💥 BREAKING CHANGE: bridge library file name change

Previously, the C bridge library had the filename temporal_sdk_bridge.dll on Windows, libtemporal_sdk_bridge.so on Linux, and libtemporal_sdk_bridge.dylib on macOS.

The filename has changed to temporal_sdk_core_c_bridge.dll on Windows, libtemporal_sdk_core_c_bridge.so on Linux, and libtemporal_sdk_core_c_bridge.dylib on macOS.

This does not affect most users as the library is still copied to the final build directory alongside other artifacts. But if there are any scripts or configuration files that refer to the library file by name, that name needs to be updated.


What was changed

Moved C Bridge from dotnet-sdk to core-sdk repo. PR on core-sdk side: temporalio/sdk-core#951

There were a few breaking changes so other interop code had to be updated as well - mostly due to new symbol prefixes.

Why?

It makes the C bridge available for other languages that prefer to use C interface to interact with Rust.

Checklist

  1. Closes [Feature Request] Move Rust C bridge to sdk-core #423

  2. How was this tested:

Code builds and all tests pass.

@maciejdudko
Copy link
Contributor Author

All checks passed and package build is successful: https://github.com/temporalio/sdk-dotnet/actions/runs/16027792907/job/45221106052?pr=494

I'll remove the trigger and then the PR is ready for review.

@maciejdudko maciejdudko marked this pull request as ready for review July 2, 2025 14:50
@maciejdudko maciejdudko requested a review from a team as a code owner July 2, 2025 14:50
Copy link
Member

@cretz cretz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! Besides shared lib name, looks like no user-facing changes which is great.

included when using modern versions of .NET on a common platform. If you are using .NET framework, you may have to
explicitly set the platform to `x64` or `arm64` because `AnyCPU` will not choose the proper library.
This SDK requires a built-in unmanaged, native shared library built in Rust. It is named
`temporal_sdk_core_c_bridge.dll` on Windows, `libtemporal_sdk_core_c_bridge.so` on Linux, and
Copy link
Member

@cretz cretz Jul 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make a big note in PR description that we are changing the shared library filename? We also have to make a big, clear note in release notes when we do our next release. I'm pretty sure some users have existing build code that copies artifacts to, say, docker containers or their prod systems that may hardcode expectations of artifact names. So it's kinda a breaking change.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@maciejdudko maciejdudko changed the title Moved C Bridge from dotnet-sdk to core-sdk repo Moved C Bridge from dotnet-sdk to core-sdk repo (💥 BREAKING CHANGE) Jul 2, 2025
@maciejdudko maciejdudko merged commit 8e94382 into main Jul 2, 2025
15 of 16 checks passed
@maciejdudko maciejdudko deleted the core-c-bridge branch July 2, 2025 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature Request] Move Rust C bridge to sdk-core

3 participants