websocket-client VS gRPC

Compare websocket-client vs gRPC and see what are their differences.

gRPC

The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) (by grpc)
Our great sponsors
  • Scout APM - Truly a developer’s best friend
  • talent.io - Download talent.io’s Tech Salary Report
  • SonarQube - Static code analysis for 29 languages.
websocket-client gRPC
2 133
3,061 35,641
1.8% 1.6%
7.1 9.9
10 days ago 6 days ago
Python C++
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

websocket-client

Posts with mentions or reviews of websocket-client. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-25.
  • Sending data to django channels groups via django views
    3 projects | reddit.com/r/codehunter | 25 Apr 2022
    EDIT: I could send the message using the websocket-client from the view
  • Everything about APIs
    11 projects | dev.to | 7 May 2021
    Websockets are (usually) for server to browser communication. The server hosts a WebSocket server, and clients can open a connection to that server. This is popular now mostly because it is faster and less resource-hogging than older ways of solving the problem, like long-polling/COMET. It is possible to connect 2 servers using websockets, but that is not usually what they are used for.

gRPC

Posts with mentions or reviews of gRPC. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-26.
  • Como melhorar meus conhecimentos em .NET?
    4 projects | reddit.com/r/brdev | 26 Sep 2022
  • Managing common businesses objects
    2 projects | reddit.com/r/csharp | 16 Sep 2022
    GRPC(its different than HTTP, yea, but it forces to to conform to a schema)
  • System Design: REST, GraphQL, gRPC
    2 projects | dev.to | 15 Sep 2022
    gRPC is a modern open-source high-performance Remote Procedure Call (RPC) framework that can run in any environment. It can efficiently connect services in and across data centers with pluggable support for load balancing, tracing, health checking, authentication and much more.
  • C/C++ or NodeJS for a 200-player persistent server?
    6 projects | reddit.com/r/gamedev | 12 Sep 2022
    Otherwise, I would use a tried and tested remote-procedure call (RPC) library, like gRPC.
  • What are the different API types?
    3 projects | dev.to | 8 Sep 2022
    Learn more on gRPC.
  • Google Cloud Reference
    24 projects | dev.to | 30 Aug 2022
    gRPC: RPC framework 🔗Link
  • gRPC - what is it and a hello world
    5 projects | dev.to | 29 Aug 2022
    The gRPC (gRPC remote procedure call) is an API architectural style based on the RPC protocol. The project was created by Google in 2015 and is licensed under Apache 2.0. Currently, the project is supported by the Cloud Native Computing Foundation (CNCF).
    5 projects | dev.to | 29 Aug 2022
    """ The Python implementation of the GRPC helloworld.Greeter server. Adapted from: - https://github.com/grpc/grpc/blob/master/examples/python/helloworld/async_greeter_server.py - https://github.com/grpc/grpc/blob/master/examples/python/hellostreamingworld/async_greeter_server.py - https://groups.google.com/g/grpc-io/c/6Yi_oIQsh3w """ from concurrent import futures import logging import signal from typing import Any from argparse import ArgumentParser, ArgumentDefaultsHelpFormatter import grpc from helloworld_pb2 import HelloRequest, HelloReply from helloworld_pb2_grpc import MultiGreeterServicer, add_MultiGreeterServicer_to_server import iris NUMBER_OF_REPLY = 10 parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument("-p", "--port", default="50051", help="Server port") args = vars(parser.parse_args()) class Greeter(MultiGreeterServicer): def SayHello(self, request: HelloRequest, context) -> HelloReply: logging.info("Serving SayHello request %s", request) obj = iris.cls("dc.jrpereira.gRPC.HelloWorldServer")._New() # hook to your ObjectScript code return obj.SayHelloObjectScript(request) def SayHelloStream(self, request: HelloRequest, context: grpc.aio.ServicerContext) -> HelloReply: logging.info("Serving SayHelloStream request %s", request) obj = iris.cls("dc.jrpereira.gRPC.HelloWorldServer")._New() n = request.num_greetings if n == 0: n = NUMBER_OF_REPLY for i in range(n): # hook to your ObjectScript code yield obj.SayHelloObjectScript(request) def get_server(): port = args["port"] server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) add_MultiGreeterServicer_to_server(Greeter(), server) listen_addr = f"[::]:{port}" server.add_insecure_port(f"[::]:{port}") logging.info("Starting server on %s", listen_addr) return server def handle_sigterm(*_: Any) -> None : """Shutdown gracefully.""" done_event = server.stop(None) done_event.wait(None) print('Stop complete.') logging.basicConfig(level=logging.INFO) server = get_server() server.start() # https://groups.google.com/g/grpc-io/c/6Yi_oIQsh3w signal.signal(signal.SIGTERM, handle_sigterm) server.wait_for_termination()
  • Update
    2 projects | reddit.com/r/StableDiffusion | 24 Aug 2022
    * A .proto file that can be used to generate gRPC (https://grpc.io/) stubs for your favorite language! We have internally used this to generate stubs for Python, Golang, and TypeScript/JavaScript. (https://github.com/Stability-AI/stability-sdk/blob/main/src/proto/generation.proto)
  • How to build a real-time app with NestJS and Memphis broker
    5 projects | dev.to | 24 Aug 2022
    gRPC is an open-source RPC framework for client-server communication. gRPC exposes server functions or microservices to clients. The clients too use gRPC to access data from the server(s). gRPC is available for all programming languages.

What are some alternatives?

When comparing websocket-client and gRPC you can also consider the following projects:

ZeroMQ - ZeroMQ core engine in C++, implements ZMTP/3.1

Apache Thrift - Apache Thrift

Cap'n Proto - Cap'n Proto serialization/RPC system - core tools and C++ library

rpclib - rpclib is a modern C++ msgpack-RPC server and client library

nanomsg - nanomsg library

zeroRPC - zerorpc for python

asio-grpc - Asynchronous gRPC with Asio/unified executors

RPyC - RPyC (Remote Python Call) - A transparent and symmetric RPC library for python

bloomrpc - GUI Client for GRPC Services

awesome-json-rpc - Curated list of JSON-RPC resources.

eCAL - Please visit the new repository: https://github.com/eclipse-ecal/ecal

Nameko - Python framework for building microservices