# mrsc [](https://travis-ci.org/kpcyrd/mrsc) [](https://crates.io/crates/mrsc)
mpsc with requests. This is a basic building block based on rusts mpsc if you have multiple workers that need to execute transactions on a shared state, without having to share your state struct across all threads. Beware that transactions are blocking, so it's recommended to avoid expensive code in the transaction handler.
## Installation
Add this to your `Cargo.toml` dependency list:
```toml,ignore
[dependencies]
mrsc = "0.3"
```
Add this to your crate root:
```rust,ignore
extern crate msrc
```
## Example
```rust
use mrsc;
use std::thread;
let server: mrsc::Server<u32, String> = mrsc::Server::new();
let channel = server.pop();
let reply = {
let msg = req.get();
println!("request: {:?}", msg);
"hello world".to_string()
};
req.reply(reply).unwrap();
});
let response = channel.req(123).unwrap();
let reply = response.recv().unwrap();
println!("response: {:?}", reply);
```
## License
MIT