cpp_client_telemetry
cpp_client_telemetry copied to clipboard
POC: Rust Wrapper for 1DS C++ SDK
What is this?
Adds a Rust "wrapper" to the 1DS C++ SDK, which will allow the SDK to be imported into Rust projects as a crate. The crate interacts with the C API of the SDK (instead of C++) as this will ensure a stable binary interface between the Rust layer and C++ layer of the project.
Project Structure
Crates:
- cpp-client-telemetry-sys: crate directly exposing the C API of the 1DS SDK to Rust.
- oneds-telemetry: contains some abstractions over the 1DS SDK and allows messages to be sent to the SDK from the log crate.
- telemetry-sample: example executable using the oneds-telemetry crate.
Limitations
- Currently only
i64
andstring
telemetry fields are supported. - Currently we're only linking with the Windows-x64 static library - additional work on the build script will be required to add support for dynamic linking and other architectures/operating systems.
Build Instructions
- Follow instructions in the root of the repository to build the project in
Win32-Lib
configuration for the x64 arch. - Run cargo build in wrappers/rust
@microsoft-github-policy-service agree company="Microsoft"
@CDFriend This looks to be a good addition. when you have time, can you please make it ready for review :)
@CDFriend This looks to be a good addition. when you have time, can you please make it ready for review :)
@lalitb - I can work on resolving the feedback.