Skip to content
Browse files

Update README.md

  • Loading branch information...
1 parent de693ea commit 5c4e55584719f8044c1fe2c434f26dece9635d6d @toffaletti committed Aug 24, 2012
Showing with 20 additions and 1 deletion.
  1. +20 −1 README.md
View
21 README.md
@@ -16,8 +16,27 @@ Features
* rpc (built on msgpack)
* epoll event loop
+Why
+---
+Or rather why not libevent, libev, or boost.asio? libten is designed
+around the concept of task-based concurrency, while the other
+libraries are designed for event driven callback based concurrency.
+They are not entirely at odds, libten's event loop could be built on
+any of these libraries. However, another major difference is that
+these libraries strive to provide a cross platform solution to event
+driven network programming. They are great if you need portable
+code that works across many versions and platforms. However,
+that feature doesn't come for free. There is added complexity in
+the code base, more code, and compromises that effect performance.
+libten's approach is to focus only on modern Linux, modern compilers,
+and high-performance APIs. For example, the libten event loop uses
+epoll, timerfd, and signalfd. It also trades memory for speed
+by using the socket fd numbers as indexes into an array. Lastly,
+libten does not stop at the event loop, it tries to be more of a complete
+package by providing logging, JSON, URI, http, rpc, zookeeper and more.
+
Dependencies
-____________
+------------
* cmake >= 2.8
* g++ >= 4.7.0

0 comments on commit 5c4e555

Please sign in to comment.
Something went wrong with that request. Please try again.