项目作者: ropensci

项目描述 :
Z包的R包
高级语言: C++
项目地址: git://github.com/ropensci/rzmq.git
创建时间: 2011-09-28T02:11:59Z
项目社区:https://github.com/ropensci/rzmq

开源协议:

下载


rzmq

R Bindings for ‘ZeroMQ’

Project Status: Active – The project has reached a stable, usable state and is being actively developed.
Package-License CRAN Downloads

Interface to the ‘ZeroMQ’ lightweight messaging kernel (see http://www.zeromq.org for more information).

Features

rzmq is a message queue for serialized R objects.

  • rzmq implements most the standard socket pairs that ZMQ offers.
  • ZMQ devices are not implemented yet, nor is zmq_poll.
  • Look for more features shortly.

Installation

Binary packages for OS-X or Windows can be installed directly from CRAN:

  1. install.packages("rzmq")

Build from source

Installation from source requires ZeroMQ. On Debian or Ubuntu use libzmq3-dev:

  1. sudo apt-get install -y libzmq3-dev

On Fedora we need zeromq-devel:

  1. sudo yum install zeromq-devel
  2. `

On CentOS / RHEL we install zeromq3-devel via EPEL:

  1. sudo yum install epel-release
  2. sudo yum install zeromq3-devel

On OS-X use zeromq from Homebrew:

  1. brew install zeromq

Usage

A minimal example of remote execution.

execute this R script on the remote server:

  1. #!/usr/bin/env Rscript
  2. library(rzmq)
  3. context = init.context()
  4. socket = init.socket(context,"ZMQ_REP")
  5. bind.socket(socket,"tcp://*:5555")
  6. while(1) {
  7. msg = receive.socket(socket);
  8. fun <- msg$fun
  9. args <- msg$args
  10. print(args)
  11. ans <- do.call(fun,args)
  12. send.socket(socket,ans);
  13. }

and execute this bit locally:

  1. library(rzmq)
  2. remote.exec <- function(socket,fun,...) {
  3. send.socket(socket,data=list(fun=fun,args=list(...)))
  4. receive.socket(socket)
  5. }
  6. substitute(expr)
  7. context = init.context()
  8. socket = init.socket(context,"ZMQ_REQ")
  9. connect.socket(socket,"tcp://localhost:5555")
  10. ans <- remote.exec(socket,sqrt,10000)