rpcz | RPC implementation for Protocol Buffers over ZeroMQ

 by   thesamet C++ Version: Current License: Apache-2.0

kandi X-RAY | rpcz Summary

kandi X-RAY | rpcz Summary

rpcz is a C++ library typically used in Web Services applications. rpcz has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

RPCZ is a library for writing fast and robust RPC clients and servers that speak Protocol Buffers. RPCZ currently supports writing clients and servers in C++ and Python. More languages may be added in the future. The API offers both asynchronous (callbacks) and synchronous (blocking) style functionality. Both styles allow specifying deadlines in millisecond resolution. RPCZ is built on top of [ZeroMQ] for handling the low-level I/O details in a lock-free manner. The Python module is a [Cython] wrapper around the C++ API. RPCZ has been tested on Ubuntu 11.10, Ubuntu 14.04, Mac OS X Lion and Microsoft Visual Studio 2012.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              rpcz has a low active ecosystem.
              It has 94 star(s) with 37 fork(s). There are 21 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              There are 6 open issues and 4 have been closed. On average issues are closed in 41 days. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of rpcz is current.

            kandi-Quality Quality

              rpcz has 0 bugs and 0 code smells.

            kandi-Security Security

              rpcz has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              rpcz code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              rpcz is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              rpcz releases are not available. You will need to build from source code and install.
              Installation instructions are not available. Examples and code snippets are available.
              It has 821 lines of code, 96 functions and 11 files.
              It has medium code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of rpcz
            Get all kandi verified functions for this library.

            rpcz Key Features

            No Key Features are available at this moment for rpcz.

            rpcz Examples and Code Snippets

            No Code Snippets are available at this moment for rpcz.

            Community Discussions

            QUESTION

            How can i write my own RPC Implementation for Protocol Buffers utilizing ZeroMQ
            Asked 2020-Jan-07 at 06:23

            According to the Google Protocol Buffers documentation under 'Defining Services' they say,

            it's also possible to use protocol buffers with your own RPC implementation.

            To my understanding, Protocol Buffers does not implement RPC natively. Instead, they provide a series of abstract interfaces that must be implemented by the user (Thats me!). So I want to implement these abstract interfaces utilizing ZeroMQ for network communication.

            I'm trying to create an RPC implementation using ZeroMQ because the project i'm working on already implements ZeroMQ for basic messaging (Hence why I'm not using gRPC, as the documentation recommends).

            After reading through the proto documentation thoroughly, i found that I have to implement the abstract interfaces RpcChannel and RpcController for my own implementation.

            I've constructed a minimalized example of where I'm currently at with my RPC Implementation

            .proto file: Omitted SearchRequest and SearchResponse schema for brevity

            ...

            ANSWER

            Answered 2020-Jan-07 at 06:23
            • ZeroMQ provides a low-level API for network communication based on messages that can contain any data.
            • ProtoBuffers is a library that encodes structured data as compressed binary data and decodes such data.
            • gRPC is a RPC framework that generates code for network communication based RPC services with functions that exchange data as ProtoBuffers data.

            Both ZeroMQ and gRPC provides support for network communication but in different ways. You have to chose either ZeroMQ, either gRPC for network communication. If you choose ZeroMQ, messages can be encoded using ProtoBuffers exchanging binary structured data.

            The main point is ProtoBuffers library allows variant records (similar to C/C++ unions) to be encoded and decoded that can fully emulate the functionality provided by RPC services having functions exchanging ProtoBuffers messages.

            So the options are:

            1. Use ZeroMQ with send and receive primitives and ProtoBuffers encoded variant messages that can contain various sub-messages, like

            Source https://stackoverflow.com/questions/59616929

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install rpcz

            You can download it from GitHub.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/thesamet/rpcz.git

          • CLI

            gh repo clone thesamet/rpcz

          • sshUrl

            git@github.com:thesamet/rpcz.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular C++ Libraries

            tensorflow

            by tensorflow

            electron

            by electron

            terminal

            by microsoft

            bitcoin

            by bitcoin

            opencv

            by opencv

            Try Top Libraries by thesamet

            sbt-protoc

            by thesametScala

            kdtree-scala

            by thesametScala

            webilder

            by thesametPython

            AnyHike

            by thesametScala