The Wayback Machine - https://web.archive.org/web/20201016213816/https://github.com/iFaceless/beanstalkc-rust
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Beanstalkd Client for Rust

Build Status Crates

Beanstalkd is a fast, general-purpose work queue. beanstalkc-rust is a Beanstalkd Client to communicate with Beanstalkd Server based on the protocol defined here.

Inspired by rust-beanstalkd and beanstalkc.

Why

Several repositories can be found from here, why not just using one of those directly? The reasons are as follows:

  1. Some of them were poorly documented;
  2. Some of them were not actively developed or maintained;
  3. This rust-beanstalkd repo with the most stars was already out-dated, since not all the beanstalkd commands were supported.

Features

  1. Easy to use;
  2. Support custom connection timeout;
  3. Support all the commands defined in the protocol.txt;
  4. Well documented.

Install

Note: :) version 1.x is no longer compatible with the old ones. Job body now returns raw bytes instead of UTF-8 string. Modification can be found here.

Add this dependency to your Cargo.toml~

beanstalkc = "^1.0.0"

Documentation

Full documentation can be found here.

Usage

More examples can be found here.

Producer

use beanstalkc::Beanstalkc;
use std::time;

fn main() {
    let mut conn = Beanstalkc::new()
        .host("127.0.0.1")
        .port(11300)
        .connection_timeout(Some(time::Duration::from_secs(10)))
        .connect()
        .expect("connection failed");

    conn.use_tube("jobs").unwrap();

    conn.put_default(b"hello, world").unwrap();
    conn.put(
            b"Hello, rust world.",
            0,
            time::Duration::from_secs(100),
            time::Duration::from_secs(1800)
        )
}

Consumer

use beanstalkc::Beanstalkc;
use std::time;

fn main() {
    let mut conn = Beanstalkc::new()
        .host("127.0.0.1")
        .port(11300)
        .connection_timeout(Some(time::Duration::from_secs(10)))
        .connect()
        .expect("connection failed");

    conn.watch("jobs").unwrap();

    let mut job = conn.reserve().unwrap();
    println!("{:#?}", job.stats());

    job.delete().unwrap();
}

License

Licensed under the MIT license

Contribution

Please feel free to report any issues~

About

πŸŽ‰ Yet another beanstalkd client for Rust~

Topics

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.