GStreamer是一个强大的多媒体框架,设计实现严谨、颇有学院派之风。但是整体复杂,不易扩展成为灵活应变的流媒体服务器。
所以一直有个念头、用C语言编写一个极简的流媒体服务、尽量少地依赖。那么首先需要一个TCP服务器,这就是eloop的起源。
eloop是一个基于pthread的事件驱动库,采用常见的Reactor反应堆模式,提供:
- TCP Server,异步处理IO。
- 目前支持Windows下select和MacOs下的KQueue。
- 定时器。
- 异步函数调用。
从而充分利用CPU,实现过程参考了libae。