You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by "Matthieu Monsch (JIRA)" <ji...@apache.org> on 2016/01/10 23:11:39 UTC

[jira] [Created] (AVRO-1778) IPC/RPC for JavaScript

Matthieu Monsch created AVRO-1778:
-------------------------------------

             Summary: IPC/RPC for JavaScript
                 Key: AVRO-1778
                 URL: https://issues.apache.org/jira/browse/AVRO-1778
             Project: Avro
          Issue Type: Improvement
          Components: javascript
            Reporter: Matthieu Monsch


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. Communication over 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




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)