Google Summer of Code 2010 :: Project Ideas

In Monkey HTTP Daemon Project, we have defined our most highest priorities, the ideas proposed here are not exclusive and they could be taken as a base for your proposal, you are encouraged to expand them or to propose your own ideas. Feel free to contact us to discuss them, you can reach us in our mailing list or through the e-mail address . We want to hear about you!



Palm Application Server - Client and Server side

  • Keys Palm Protocol, C, Python
  • Difficulty High
  • Description In Monkey, we are developing our own protocol called 'Palm' to handle requests which are related to dynamic content for the output generated by scripts such as PHP, Python, Perl, etc. The protocol is implemented in two parts, the first is the Palm Plugin for Monkey written in C and the Palm Application server which is written in Python. Both parts are still under development and we need to bring up improved versions of the actual code.
  • Skills Required High knowledge of C and Python ; Medium knowledge of Networking and Protocols
  • Mentor Eduardo Silva

Monkey Core - SSL support

  • Keys C, SSL, Sockets
  • Difficulty High
  • Description Monkey Core is under heavy development and some features are still missing. Monkey must support SSL as an optional feature for the sysadmin, the SSL implementation must be done in a well designed layer which provide the feature to link different SSL implementation libraries. This implementation has a higher difficulty as is required to modify Monkey Core and Plugins interfaces.
  • Skills Required High knowledge of C, Sockets and Posix Threads
  • Mentors Eduardo Silva / Jonathan Gonzalez

Monkey Plugin - FastCGI

  • Keys C, CGI
  • Difficulty High
  • Description There're a lot of applications that are developed and working under production enviroments using the FastCGI protocol, Monkey must be able to provide FastCGI support through a Plugin. This plugin must cover the full FastCGI spec.
  • Skills Required High knowledge of C, Networking and Protocols
  • Mentor Eduardo Silva

Monkey Plugin - BandWidth

  • Keys C, Bandwitdh
  • Difficulty Medium
  • Description Sometimes the bandwidth is very limited and hosting providers would like to reserve more bandwidth for some virtual hosts than others. This plugin allows to control and limit the traffic when serving the content for each client request, it must restrict the amount of bytes sent by seconds, the rules must work under virtual host level.
  • Skills Required Good background in C
  • Mentors Eduardo Silva / Jonathan Gonzalez

Monkey Plugin - Proxy Reverse

  • Keys Proxy, Web Balancer, C, epoll(7)
  • Difficulty Medium
  • Description A Proxy Reverse, allows to all incoming connections be routed to other web servers, this feature can be used also to let Monkey work like a web balancer. This plugin must work at virtual host level and allow at least 3 balancer algorithmics
  • Skills Required Good background in C, Sockets and Epoll
  • Mentors Eduardo Silva / Jonathan Gonzalez

Monkey Web Share

  • Keys Python, GTK, Desktop, HTTP
  • Difficulty Medium
  • Description This project aims to develop a graphical tool based on Python and GTK+ (PyGTK) for Gnome Desktop. This tool will provide an applet in the Gnome toolbar and an integration in Nautilus as a plugin, it will allow to share a specific user directory on fly launching Monkey in background with the specific configuration required. So the end user will be able to share an unique address and external people could access the shared information.
  • Skills Requirement Low knowledge of C ; High knowledge of Python and GTK+ (PyGTK)
  • Mentor Eduardo Silva