Monkey is a lightweight and scalable Web Server. Originally made for Linux, it's also compatible with OSX. It have been designed with a strong focus on Embedded devices, therefore its scalable by nature having a low memory and CPU consumption, making it a real solution for high end production servers too.
Monkey is built and tested for different architectures such as ARM, x86 and x64.
The following is a list of some features available on Monkey, for more details about all things available please refer to the official documentation:
Monkey uses an hybrid mechanism composed by a fixed number of threads being each one capable to attend thousands of clients thanks to the event-driven model based in asyncrhonous sockets.
The interaction between the scheduler and each worker thread is lock free, avoiding race conditions and exposing a huge performance compared to other available options. It also takes the most of the Linux Kernel to optimize the work using specific system calls based on zero-copy strategy.
A good and flexible architecture is one of our goals. Monkey have been designed to keep most of the HTTP functionalities in the core and make it extensible through external plugins. Its core is small, depending of the compiler version used, the size of the runtime can be ~300KB. The current plugins are distributed with the sources:
Monkey was originally written with a strong focus on Linux and due to the received support we have been able to expanded our efforts to make it compatible with OSX and BSD.
Monkey project is sponsored by it main authors, contributors and the following entities who are actively supporting it development:
Monkey Server is under the tems of the Apache License v2.0. For any extra requirement or inquiry please write us to eduardo at monkey.io .
All Monkey logos and banners are Copyrighted by Eduardo Silva.