Giter VIP home page Giter VIP logo

grpc-demo's Introduction

gRPC demo

gRPC is a high-performance, open-source universal RPC framework developed by Google that enables efficient communication between distributed systems. In this repository, you'll find a comprehensive demonstration of gRPC's capabilities, including examples of how to define services and messages using Protocol Buffers, implement gRPC servers and clients in various programming languages such as Python and Node.js, and showcase real-world use cases for gRPC.

Whether you're new to gRPC or looking to deepen your understanding, this repository provides a hands-on learning experience to explore the power and versatility of gRPC for building fast, scalable, and interoperable microservices.

What can I found here?

This project has 4 main components:

  • ProtoBuf definition: A ProtoBuf definition of a Exchange service and the messages an data models used.
  • Python Server: A server implementing the Exchange service defined in ProtoBuf.
  • Phyton Client: A client consuming the Exchange service in Python (using the defined ProtoBuf messages).
  • NodeJS Client: A client consuming the Exchange service in NodeJS (using dynamic load of .proto files).

How to use it?

This project uses Docker to simulate the different microservices. A Makefile is included to simplify the operations, in case of doubt, just execute make and follow the instructions:

$ make

Usage:
  make <target>

Server
  start-server     ๐Ÿš€  Start server
  stop-server      ๐Ÿ™‹๐Ÿป Stop server
  start-server-daemon  ๐Ÿ˜ˆ  Start detached server
  build-server     ๐Ÿ—๏ธ  Build server

Clients
  start-python-client  ๐Ÿš€  Start Python client
  build-python-client  ๐Ÿ—๏ธ  Build Python client
  start-node-client  ๐Ÿš€  Start NodeJS client
  build-node-client  ๐Ÿ—๏ธ  Build NodeJS client

โš ๏ธ Important note
Before run the server, you need to create a copy of the .env.dist file and name it as .env, and include your own Free Currency Conversion API key (it's free).

grpc-demo's People

Contributors

mangelsnc avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.