zuhrulumam/grpc-file-upload — reverse-engineered prompt

Reverse engineered prompt

GitHub

Build me a Go demo project for uploading and downloading files with gRPC. I want a server that streams file chunks for upload and download, saves uploaded files locally, and also exposes a simple REST endpoint through gRPC Gateway so I can compare normal HTTP calls with gRPC.

Please include a small command line client that can upload and download a file from the terminal, with progress shown while the transfer is happening. Add protobuf definitions, generated Go code setup, a Makefile for regenerating protos, running the server, running the client, and cleaning things up.

Also include clear README instructions for installing the protobuf tools, starting the server, uploading a file, downloading it again, and doing a simple benchmark against the REST endpoint using curl. Keep it practical and runnable on Go 1.20 or newer.

Want more depth? Deep Reverse