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 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.