com/libs/hxzmq [en]

All languages

Differences between version #10754 and #10755

< </code>
\ No newline at end of file
> </code>
> ===== About ZeroMQ =====
> 0MQ is a relatively recent entrant into the messaging layer software space, conceived as a low-level, cross-platform but highly - performant messaging library that can replace direct use of in-process and tcp sockets etc with a message-orientated API.  It implements a number of well-defined message patterns via a number of 0MQ socket types that each have a well-defined behaviour and usage patterns.  Combining 0MQ sockets enables highly scalable messaging topologies to be implemented.  0MQ sockets maybe connected to multiple endpoints while simultaneously accepting incoming connections from multiple endpoints bound to the same socket, thus allowing many-to-many relationships.
> Current ZeroMQ socket types (see [[]] “zmq_socket” for more details)
>  * Asynchronous Request – Reply (ZMQ_REQ and ZMQ_REP socket types, extendable using ZMQ_ROUTER and  ZMQ_DEALER distribution sockets)
>  * Publish – Subscribe (ZMQ_PUB and ZMQ_SUB socket types)
>  * Pipeline (ZMQ_PUSH and ZMQ_PULL)
>  * Exclusive Pair (ZMQ_PAIR)
> The active 0MQ community is centered around the website.  Pieter Hintjens has written an excellent [[|ZeroMQ Guide]] which acts as an extended tutorial on ZeroMQ best practise and usage, with 100s of [[|code examples in different languages]] (including Haxe). 
> ===== Introduction to hxzmq =====
> The hxzmq project provides a Haxe language binding for ZeroMQ, currently supporting (for hxzmq v1.3.0 at the time of writing) the Haxe cpp, neko and php compilation targets.
> Combining Haxe with ZeroMQ allows developers to create system architectures with any combination of those targets across multiple operating systems using ZeroMQ as the messaging layer.  For example:
>  * Build a Haxe PHP web service that communicates with a distributed Haxe cpp backend system using ZeroMQ
>  * Create a Haxe multi-threaded application using ZeroMQ ipc transport messaging (allowing later refactoring of threads into separate processes / components).
>  * Create a Haxe neko Mongrel2 ZeroMQ handler service for fast AJAX client-server communication (+ using Haxe javascript on the web frontend wrapping the Websocket API etc)
> Because 0MQ has so many other language bindings, you can combine Haxe – written components with 0MQ – enabled components written in Java, C++, C#, Ruby etc into the same distributed system.
> The hxzmq project includes several layers of software:
>  * **hxzmq.ndll**
> A compiled C shared library file that bridges the native libzmq API to Haxe neko or CPP applications using the CFFI foreign function interface of the hxcpp Haxe library.
>  * **0MQ API Haxe wrapper classes** (org.zeromq package)
> The ZMQxxxxx classes in the org.zeromq package provide an API close to the original libzmq C implementation, for managing ZMQ contexts (ZMQContext.hx), sockets (ZMQSocket.hx), pollers (ZMQPoller.hx) and constants (ZMQ.hx) etc. These classes wrap the calls to the underlying hxzmq.ndll or php-zmq libraries / modules.
>  * **High – level Haxe API** (org.zeromq package)
> The Zxxxxx classes in the org.zeromq package provide a higher-level API that allow developers to work with managed contexts (ZContext.hx), message frames (ZFrame.hx) and multi-part messages (ZMsg.hx), a reactor loop implementation (ZLoop.hx) and so on.  These were inspired by the czmq C language binding by iMatix.
>  * **Haxe remotin**g (org.zeromq.remoting)
> The classes in the org.zeromq.remoting package allow Haxe remoting procedure calls between 0MQ sockets (e.g. using a Request-Reply topology) instead of raw tcp. This enables complex distributed architectures to be built with Haxe remoting used at the endpoints, with intermediate 0MQ devices in the middle (which can also be written in Haxe).

Ver Date User Action
#10755 2011-07-19 12:50:57 rjsmith View | Diff
#10754 2011-07-19 12:42:56 rjsmith View | Diff
#10753 2011-07-19 12:42:56 rjsmith Set title to hxzmq: ZeroMQ binding for Haxe

Previous | Next