We are currently using epoll based implementation on Linux. We plan to port our software to mac and hence looking for platform independent approach. I looked at libevent2
and libuv
, both seem to be fitting our requirement. However, I would like to get suggestions from the people who have used both. I read some comparisons but they are quite old to be meaningful now:
- libuv seems to be more popular than libevent
- 90% of our client connections are using TLS, and hence ease to use with SSL socket is mandatory. We are currently using boringssl and we are okay to use openssl too.
- multithreading support
- minimum buffer copy. It seems evbuffer in libevent is double copy approach which we'd like to avoid. They have
peek
API which may partially solve it but we yet to explore more.
Any other suggestions you might have on libevent, libuv or any other such options (no boost please).