This document summarizes the history of concurrency approaches used in the Rust zmq.rs library. It started with a unified 1:1 threading model but later switched to using M:N threading to allow more flexibility. It discusses green threads, native threads, the libgreen and green-rs crates, and how the project will move to using the mio crate for asynchronous I/O instead of libgreen. The goal is to rewrite zmq.rs to follow the C++ ZeroMQ design of using a few worker threads each with an event loop and manually mapping sockets to workers.