Skip to content

pavlyhalim/grpcpp_server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

README

Preparation and Installation

Protocol Buffers

Installation was initiated following the guidelines from Protocol Buffers Installation. Additional insights were gained from the gRPC GitHub repository.

gRPC Libraries for C++

Implemented as per the instructions provided at gRPC C++ Quickstart. Resolved installation issues by referencing grpc/grpc#24660 and addressing common errors such as the missing header file on Stack Overflow.

Testing Framework and Challenges

Transitioned to Google Test for C++ code testing, encountered compatibility issues on ARM64 as detailed in protobuf#5868 and gtest#3208. Due to these challenges, switched to the Catch2 framework for more flexible behavior-driven development (BDD), detailed on Catch2 GitHub.

Build Tools and Execution

Installation with Homebrew:

brew install grpc
brew install abseil
brew install protobuf

Compilation:

Run make in the project directory to compile the applications.

Execution:

  • Start the server with ./bin/server.
  • Run the client with ./bin/main in a separate terminal to begin data transfer.

Testing:

  • Test executables are located in bin/tests.
  • Modify the file path in test cases as needed for correct file transfers.
  • Run ./bin/tests/client_tests for manual tests or ./bin/tests/catch_tests for Catch2 library tests.

Protocol Buffers Rebuild:

If you need to modify the protocol buffer definitions, rebuild them with:

protoc --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` file_exchange.proto
protoc --cpp_out=. file_exchange.proto

About

gRPC server

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published