-
Notifications
You must be signed in to change notification settings - Fork 4.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Integrating Rust binaries in tracer extensions #32502
Comments
We currently don't have a mechanism for dynamic load and Rust support, but I'd be excited to see Rust code build inside Envoy and linking to binary. There was a discussion regards to dynamic loadable modules in #2053 as well. |
@lizan when you say you'd be excited to see Rust code build an linking to a binary you mean that the rust module should be embedded in the envoy project, built from source and linked as part of the envoy compilation (just as the tracer) right? |
Following on the topic @lizan and leaving the dynamic loadable modules aside. We've been evaluating what options we have to put this in motion for the short term. The one we are considering is using an external dependency (tgz file) which will contain the static library compiled for all architectures supported. The proper architecture will be selected based on the ARCH of the bazel project. This static library will contain the rust code and FFI methods to be called from Datadog tracer so all will be statically linked with no external dependencies. How does that sound? |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in the next 7 days unless it is tagged "help wanted" or "no stalebot" or other activity occurs. Thank you for your contributions. |
This issue has been automatically closed because it has not had activity in the last 37 days. If this issue is still valid, please ping a maintainer and ask them to label it as "help wanted" or "no stalebot". Thank you for your contributions. |
Commit Message: dynamic_modules: adds initial object loading logic Additional Description: This is the very first commit of the dynamic loading feature discussed among community members. This is the effort to upstream the playground repository https://github.com/mathetake/envoy-dynamic-modules as an Envoy core extension. Series of commits will follow this little by little. #2053, #24230, #32502 Risk Level: N/A (not compiled into the final build yet) Testing: unit Docs Changes: N/A Release Notes: N/A Platform Specific Features: N/A [Optional Runtime guard:] [Optional Fixes #Issue] [Optional Fixes commit #PR or SHA] [Optional Deprecated:] [Optional [API Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):] --------- Signed-off-by: Takeshi Yoneda <[email protected]>
Commit Message: dynamic_modules: adds initial object loading logic Additional Description: This is the very first commit of the dynamic loading feature discussed among community members. This is the effort to upstream the playground repository https://github.com/mathetake/envoy-dynamic-modules as an Envoy core extension. Series of commits will follow this little by little. envoyproxy#2053, envoyproxy#24230, envoyproxy#32502 Risk Level: N/A (not compiled into the final build yet) Testing: unit Docs Changes: N/A Release Notes: N/A Platform Specific Features: N/A [Optional Runtime guard:] [Optional Fixes #Issue] [Optional Fixes commit #PR or SHA] [Optional Deprecated:] [Optional [API Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):] --------- Signed-off-by: Takeshi Yoneda <[email protected]> Signed-off-by: Martin Duke <[email protected]>
Commit Message: dynamic_modules: adds initial object loading logic Additional Description: This is the very first commit of the dynamic loading feature discussed among community members. This is the effort to upstream the playground repository https://github.com/mathetake/envoy-dynamic-modules as an Envoy core extension. Series of commits will follow this little by little. envoyproxy#2053, envoyproxy#24230, envoyproxy#32502 Risk Level: N/A (not compiled into the final build yet) Testing: unit Docs Changes: N/A Release Notes: N/A Platform Specific Features: N/A [Optional Runtime guard:] [Optional Fixes #Issue] [Optional Fixes commit #PR or SHA] [Optional Deprecated:] [Optional [API Considerations](https://github.com/envoyproxy/envoy/blob/main/api/review_checklist.md):] --------- Signed-off-by: Takeshi Yoneda <[email protected]> Signed-off-by: asingh-g <[email protected]>
Title: Integrating Rust binaries in tracer extensions
Description:
Hi envoy team, as you might know Datadog is currently integrating a tracer into envoy. As a result of a company initiative to harmonize implementations that are common to the different tracers implemented inside the company we'd have the need to use this common modules into the dd-trace-cpp project. The language of choice for those common modules is Rust which means we'd need to either compile Rust code inside envoy project or importing a precompiled binary during the compilation of the extension. I've tried to look for another extensions using any of the aforementioned mechanisms to integrate Rust code but, unfortunately, I had no luck. So Is there a way to integrate Rust code/libraries in a tracer?
Aside from that I've found this PR, with that we could build a dynamic library which will include the cpp tracer and the rust parts to be loaded upon envoy initialization right?
Relevant Links:
https://github.com/envoyproxy/envoy/tree/main/source/extensions/tracers/datadog
#2252
The text was updated successfully, but these errors were encountered: