This diff is a part of the flat diffs stack to transform the current Tunnelbroker project into a Rust app by calling the current C++ codebase from Rust. The related transition task is [[ https://linear.app/comm/issue/ENG-1072 | ENG-1072 ]].
This diff creates the Cargo project file for the Tunnelbroker application and its dependencies.
Related Linear task: [[ https://linear.app/comm/issue/ENG-2061/change-the-build-system-for-tunnelbroker-to-build-the-current-c | ENG-2061 ]]
**Dependencies description:**
**cxx - Needed for the C++ and Rust interop.
tracing - We will use it for logging in threads.
tokio - Asynchronous runtime needed for Tokio and our threadscxx-build - Building C++ codebase.
lazy_static - Lazy static initializationglob - Used in the helper function to traverse the directory for `.cpp` files (used in D5434).
a2 - Notification library dependencytracing - We will use it for logging in threads.
log - Logging.
env_logger - Getting log level from env variable.
fcm - Notification library dependencytokio - Asynchronous runtime needed for Tokio and our threads.
anyhow - Trait object-based error type for easy idiomlazy_static error handling, that is used in the Notific- Lazy static initialization library.
openssl -a2 - [[ https://github.com/CommE2E/comm/tree/master/services/tunnelbroker/rust-lib/src/notifications | Notification library ]] dependency.
tonic - gRPC fcm - [[ https://github.com/CommE2E/comm/tree/master/serverices/tunnelbroker/rust-lib/src/notifications | Notification library ]] dependency.
prost - Tonic dependencyanyhow - Trait object-based error type for easy idiomatic error handling, that is used in the [[ https://github.com/CommE2E/comm/tree/master/services/tunnelbroker/rust-lib/src/notifications | Notification library ]].
prost-types - gRPC well-known typesopenssl - Notification library dependency.
futures - Used for handling streamtonic - gRPC server dependency (used in TonicD5477).
cxxtonic-build - Building C++ codebaseCompiling the proto file (used in D5360).
prost - Tonic dependency (used in D5477).
glob - Used in the helper function to traverse the directory for `.cpp` filesprost-types - gRPC well-known types dependency (used in D5477).
tonic-build - Compifutures - Used for handling the proto filestream in Tonic (used in D5477).
**CI Notice:**
The CI will fail on these diffs until the end of the stack with the changes to CI build commands. This stack will be landed all in one to prevent CI from failing on diffs out of this stack.