ruby-netsnmp is a pure ruby implementation of the snmp protocol, from v1/v2c up to v3.
It was extracted and open-sourced from an internal ruby library used in Swisscom (Switzerland telecom) used for concurrently access, inspect and configure network nodes.
It is tested against (and used in production with) celluloid-io udp sockets, providing an option to pass your own I/O implementation, which makes it adaptable to eventmachine or any other type of custom IO.