A Multi-Threaded Event-Driven Web Server/Framework Anand Suresh SPED servers boast of high performance, but fail to scale to multi-core systems. The objective here is to build a multi-threaded event-driven web server that scales well on multi-core processors and evaluate its performance. Starting off with a SPED server built using libevent (a portable C library for event-driven I/O), I intend to multi-thread it using libpthread (the POSIX threads C library) to exploit multiple cores along with POSIX AIO to implement asynchronous I/O so as to not block on disk I/O (although this might be sacrificed for additional portability, in which case the I/O will be handled by background threads). This delivers an AMTED (Asymmetric Multi-Threaded Event-Driven) server that can utilize the full power of a multi-core system. Following the server, I will extend the code developed for the Improved Web Server as part of the individual project to create a mini framework to develop dynamic web applications in C, utilizing the support for shared libraries and code caching. The current scope is to have a simple framework, minus any database connectivity modules (time permitting, I would love to pick Redis, MongoDB or MySQL as a possible back-end). I will also be evaluating the server extensively to study its performance using the standard performance testing tools like httperf to understand how the improvements help speed up the performance and present results for modern hardware. I intend to design test cases to study dynamic applications that may be CPU and/or I/O-bound instead of using a static workload, which isn't very relevant for modern web applications. To put things in perspective, this may be compared with a similar dynamic workload running on nginX or Apache.