2 releases

Uses old Rust 2015

0.1.1 Nov 3, 2017
0.1.0 Oct 26, 2017

#72 in #server-framework

27 downloads per month

MIT license

36KB
709 lines

redif-rs

Redis protocol server Framework in Rust

Redif is a framework, it talks the data transport in redis protocol, and call user provided Handler to handle the request. User should implement Handler trait, and invoke Redif with redif::run( port, handler).

For example


extern crate redif;

use std::sync::{Arc,Mutex};
use redif::{Value, Handler};

// implement Handler trait
struct Store {
    kv : HashMap<String, String>,
}

impl Handler for Store {

    fn handle(&mut self, data: &Value) -> Option<Value> {
		/// ...
	}

}


fn main() {

    let port = 4344u16;
    let store = Store::new();
    let handler = Arc::new(Mutex::new(store));

    // call redif::run() with port and handler
    if let Err(ref e) = redif::run( port, handler.clone() ) {
        error!("ERROR {}", e);
        std::process::exit(1);
    }
}

examples/simple.rs is a simple demo.


lib.rs:

redif -- a Redis protocol server Framework

Redif is a framework, it talks the data transport in redis protocol, and call user provided Handler to handle the request. User should implement Handler trait, and invoke Redif with redif::run( port, handler).

For example


extern crate redif;

use std::sync::{Arc,Mutex};
use redif::{Value, Handler};

// implement Handler trait
struct Store {
    kv : HashMap<String, String>,
}

impl Handler for Store {

    fn handle(&mut self, data: &Value) -> Option<Value> {
		/// ...
	}

}


fn main() {

    let port = 4344u16;
    let store = Store::new();
    let handler = Arc::new(Mutex::new(store));

    // call redif::run() with port and handler
    if let Err(ref e) = redif::run( port, handler.clone() ) {
        error!("ERROR {}", e);
        std::process::exit(1);
    }
}

Dependencies

~2MB
~41K SLoC