Few words + Monkey v1.6.7 is out!

First of all thanks to everyone who support Monkey Project, starting from individual users/contributors and companies that helps sponsoring it development: Treasure Data, OSUSL and Rackspace.

This year we had 9 releases where 1.6 branch appeared with several improvements and architectural changes to support the incorporation of new protocols, as you know HTTP/2 protocol specification was released so adding it to Monkey it's a priority, honestly I wanted to have HTTP/2 in place at the end of this year (2015) but was not possible, anyways it implementation already started and will be available on the next major branch v1.7. A summary of improvements on 1.6 are:

  • Build system moved to CMake (huge win!).
  • Listeners can be associated to network plugins, multiple TCP ports can be used.
  • OSX support.
  • Event loop support backends (epoll / kqueue).
  • New HTTP Parser.
  • Systemd script support.
  • FastCGI plugin re-write.
  • Content Handlers are associated using regular expressions in the configuration.
  • New Library mode (not yet finished).
  • Plugins can be build statically or dynamically.
  • Arduino Yun support (MIPS).
  • Performance improvements.

Duda I/O (web services framework) project have been maintained and the next major version will be based on the new stack already provided by Monkey 1.6 (and 1.7). In the development repository you will find several changes for this where it adapt to the new build system (CMake). The goal with Duda is to make it able to build as a static interface with Monkey core and provide a new easy runtime to deploy web services.

This year 2015 have been a slow transition to support all good things are coming for 2016, so the next priorities are:

  • Monkey: HTTP/2 support
  • Monkey: new library mode
  • Duda: new major version v2 (it will inherit HTTP/2)

I will continue releasing v1.6 minor versions with small improvements and required fixes, the v1.7 version is being developed in parallel. For now thanks to all people around the project, I hope you have a happy new year !!

Monkey Server v1.6.7 is out !

Monkey Server is a fast and lightweight HTTP server for Linux, OSX and BSD. It has been designed to be very scalable with low memory and CPU consumption, the perfect solution for High Demand Production Servers and Embedded Devices. Made for ARM, MIPS, x86 and x86_64.

We are proud to announce the availability of Monkey v1.6.7!


Below there is a list of the most relevant changes on this version:

  • Scheduler: check if event reference is already idle before to add it to the free queue.
  • Scheduler: map missing event in channel and fix bitmasks.
  • Server: HTTP: fix protocol prefix when doing HTTP redirection.
  • Server: HTTP: improve performance on index lookup.
  • Server: header: do not restrict chunked transfer encoding.
  • Server: check connection is not closed before to run a FORCE_CLOSE.
  • Server: stream: implement handler for EOF stream plus other fixes.
  • Core: macros: set ANSI_COLORS to bright mode.
  • Core: event: fix bitmask checks on epoll(7) backend.
  • Core: iov: if run out of capacity, just return -1, do not abort
  • TLS: use mk_api ref for config reader, fix OSX linker.
  • TLS: fix configuration loader for relative paths (Fix #225)
  • FastCGI: add padding and implement additional CGI environment variables.
  • FastCGI: on fcgi_exit, always disable backend events first.
  • FastCGI: use an EOF stream to handle exceptions and slow network connections.
  • FastCGI: use raw network handler when talking to the fastcgi server (Fix #226)
  • FastCGI: fix crash when Jemalloc is enabled (Fix #221)

For more details and a complete list of changes please refer to the official release notes:



We would like to thanks to the following people who have been involved doing coding, bug fixes, troubleshooting and general contributions on this release:

Join us!

We want to hear about you, our community is growing and you can be part of it!, you can contact us at: