• Donate
  • Log In
Home
  • About
    • About
      • About Us
      • Our Board of Directors
      • Board Meeting Minutes
      • Board Elections
      • Updates & Announcements
      • Our Staff
      • Governance & Financials
      • Lifetime Achievement Award
  • Events
    • Events
      • Upcoming
      • Past
      • Conference FAQ
      • Conference Policies
      • Code of Conduct
      • Calls for Papers
      • Author Resources
      • Grant Opportunities
      • Best Papers
      • Test of Time Awards
  • Join & Support
    • Join & Support
      • Become a Member
      • Ways to Give
      • Our Supporters
      • Student Opportunities
      • Sponsorship Opportunities
  • Archive
    • Archive
      • Proceedings
      • Multimedia
      • ;login: Archive
      • Short Topics in System Administration Series
      • Journal of Education in System Administration (JESA)
      • Journal of Election Technology and Systems (JETS)
      • Computing Systems Journal
  • Search

Using gRPC with Go

Author(s): 

Chris "Mac" McEniry

In the past few articles, we’ve used Go’s net/rpc library to build a simple file metadata server. In this article, we’re going to look at using gRPC (https://grpc.io) to fulfill the same purpose.

gRPC has many advantages over the built-in RPC library, namely:

  • Fast and efficient network communication
  • Ability to stream inputs and outputs
  • Automatic transport encryption
  • Ability to interact with other languages
  • Ready extensions to support authentication and connection handling.

gRPC is typically boiled down to the description “Protobuf messages over HTTP/2.” This is true to a first pass, but it also encompasses the libraries, middleware extensions, and interactions with other languages.

For the sake of brevity, some sections of the code examples here are left out. The full code for this example can be found at https://github.com/cmceniry/login-grpcls.

Download Article: 
PDF icon Using gRPC with Go (PDF)
Article Section: 
COLUMNS
;login: issue: 
Spring 2018, Vol. 43, No. 1
USENIX logo
  • Contact USENIX
  • Privacy Policy

© USENIX 2025
EIN 13-3055038

Website designed and built by Giant Rabbit LLC
Powered by Backdrop CMS

We need contributions from individuals like you.

USENIX conferences directly influence the development of computing systems and products used worldwide. Contribute today to support this vital work for the next 50 years.

Secure the Future of USENIX

Donate
Close