Build Status Crates.io

nsq-rs

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

WORK IN PROGRESS

Current features

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