This project is designed to test the runtime differences between Go and .NET for gRPC servers. It aims to provide insights into the performance and efficiency of these two runtime environments.
To run the gRPC server locally, you can use the justfile included in this project. The justfile contains commands that simplify the process of starting the server. Here are the steps to run the servers:
- Start the OpenTelemetry collector and other metrics & tracing tools with
just start-observe-services
- Start one of the gRPC servers by running the start command.
- For the connectRPC server use
just run-connect-server
(requires go to be installed) - For the dotnet server use
just run-dotnet-server
(requires the .NET SDK to be installed)
- For the connectRPC server use
- The server should now be running locally and ready to accept incoming gRPC requests.
- Start the load test using the following command (requires k6 to be installed):
or by providing an optional rps target and total test time with:
just test-localhost
just test-localhost {rps} {time_s}
- You can stop the observation tools with
just stop-observe-services
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please feel free to open an issue or submit a pull request.