GSoC/GCI Archive
Google Summer of Code 2014

Monkey Project

License: GNU Library or "Lesser" General Public License version 2.0 (LGPLv2)

Web Page: http://monkey-project.com/gsoc2014/ideas

Mailing List: http://lists.monkey-project.com/listinfo/monkey

Monkey Project produces an open source and high quality HTTP Server Stack for GNU/Linux with focus in high-end environments and embedded devices. Project goals are performance, scalability and Linux Kernel dependent. In technical terms, Monkey has been designed with a flexible architecture, it is based in a core which only supports HTTP/1.1 and an API interface to extends the server functionality through plugins. Some remarkable Monkey features are: - ARM, x86 & x64 - Binary size (core) < 60KB - IPv6 - C API interface - Extensions/Plugins: - Basic Auth - SSL - Security - Rules per URI and subnetworks - Log Writer - Directory Listing - Cheetah! Shell: command line interface through Unix sockets - Duda: Web Services Framework

Projects

  • Add coroutine support to Duda I/O The web services framework already prove itself to be very efficient. However, it requires programmer to think and code in an asynchronous way, which makes it more error prone and harder to debug. Thus this project focus on implementing coroutine support for Duda I/O. Once done, it will make writing web app much more easiler and robust because coroutine is more human friendly while we can still benefit from the asynchronous control flow of code execution(machine friendly).
  • Advanced Caching plugin for Monkey server This proposal provides a brief description of the implementation of a caching plugin for Monkey server. This plugin will be of great benefit to the server since it will reduce the server load and increase the performance of the server by enabling to handle requests from more clients. More has been described in the proposal.
  • Lua scripting support plugin for monkey As part of this project I will be implementing a Monkey Plugin capable to interpret Lua scripts for dynamic content generation and performing administrative tasks,
  • Monkey shared library with python bindings Below you can find my thoughts on improving the Monkey HTTP Daemon project, as a proposal at GSoC 2014.
  • Raspberry Pi Dashboard Implement REST api for various hardware features of Raspberry Pi with Duda IO, implement JavaScript around the REST api, and use it to make Raspberry Pi Dashboard in AngularJS. Provide good documentation for all of them.