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)