# 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.
```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