nsqueue 0.1.1

Rust client for the NSQ realtime message processing system
Documentation

Build Status Crates.io

nsq-rs

A Tokio based client implementation for the NSQ realtime message processing system

WORK IN PROGRESS

Current features

  • PUB
  • SUB
  • Discovery
  • Backoff
  • TLS
  • Snappy
  • Auth

PUB

extern crate futures;
extern crate tokio_core;
extern crate nsqueue;

use futures::Future;
use tokio_core::reactor::Core;

use nsqueue::config::*;
use nsqueue::producer::*;

fn main() {
     let mut core = Core::new().unwrap();
     let handle = core.handle();
     
     let addr = "127.0.0.1:4150".parse().unwrap();

     let res = Producer::connect(&addr, &handle, Config::default())
        .and_then(|conn| {
            conn.publish("some_topic".into(), "some_message".into())
            .and_then(move |response| {
               println!("Response: {:?}", response);
               Ok(())
            })
        });
     core.run(res).unwrap();
}

SUB

extern crate futures;
extern crate tokio_core;
extern crate nsqueue;

use futures::Future;
use tokio_core::reactor::Core;

use nsqueue::config::*;
use nsqueue::consumer::*;

fn main() {
     let mut core = Core::new().unwrap();
     let handle = core.handle();

     let addr = "127.0.0.1:4150".parse().unwrap();

     core.run(
         Consumer::connect(&addr, &handle, Config::default())
         .and_then(|conn| {
            // TODO: Implement subscription as a stream 
            conn.subscribe("some_topic".into(), "some_channel".into())
            .and_then(|message| {
                println!("Got message {}", message);
                Ok(())
             })
         })
     ).unwrap();
}

License

Licensed under either of