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 threads.
lazy_static - Lazy static initialization.
a2 - Notification library dependency.
log - Logging.
env_logger - Getting log level from env variable.
fcm - Notification library dependency.
anyhow - Trait object-based error type for easy idiomatic error handling, that is used in the Notification library.
openssl - Notification library dependency.
tonic - gRPC server dependency.
prost - Tonic dependency.
prost-types - gRPC well-known types dependency.
futures - Used for handling stream in Tonic.
cxx-build - Building C++ codebase.
glob - Used in the helper function to traverse the directory for `.cpp` files.
tonic-build - Compiling the proto file.
**CI Notice:**
The CI will fail on this and further diffs until the D5461 where the changes to CI build commands are made.
This stack will be** landed all in one** to prevent CI from failing on diffs out of this stack.