Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-1778

IPC/RPC for JavaScript

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • javascript
    • None

    Description

      This patch adds protocols to the JavaScript implementation.

      The API was designed to:

      + Be simple and idiomatic. The `Protocol` class added here is heavily inspired by node.js' core `EventEmitter` to keep things as familiar as possible [1]. Getting a client and server working is straightforward and requires very few lines of code [2].

      + Support arbitrary transports, both stateful and stateless. Built-in node.js streams are supported out of the box (e.g. TCP/UNIX sockets, or even stdin/stdout). Exchanging messages over a custom transport requires implementing a single simple function (see [3] for an example).

      + Work both server-side and in the browser!

      Ps: I also tested against both the Java and Python implementations over HTTP and communication worked.

      [1] https://github.com/mtth/avsc/wiki/API#ipc--rpc
      [2] https://github.com/mtth/avsc/wiki/Advanced-usage#remote-procedure-calls
      [3] https://github.com/mtth/avsc/wiki/Advanced-usage#transient-streams

      Attachments

        1. AVRO-1778.patch
          99 kB
          Matthieu Monsch

        Activity

          People

            rdblue Ryan Blue
            mtth Matthieu Monsch
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: