GSoC/GCI Archive
Google Summer of Code 2013

BEAM Community

Web Page: https://github.com/beamcommunity/beamcommunity.github.com/wiki

Mailing List: https://groups.google.com/forum/#!forum/beam-community

The BEAM Community is a group of OSS projects that run on the Erlang VM. Our goal is to host relevant projects in the Erlang community, making it easy for those projects to participate in the Google Summer of Code and for interested students to pick their best choice. The Erlang VM was originally designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. Many companies around the world like Amazon, Heroku and Activision use the Erlang VM in their stack and open source projects like CouchDB and Riak are built on top of it. Our currently hosted projects include Disco, a distributed computing framework originated from Nokia, Zotonic, a high performance CMS in Erlang, ejabberd, a robust XMPP server used largely around the world and others. This gives students a wide range of choices, that goes from working on distributed systems, to maintaining robust servers and language design.

Projects

  • Elixir - Debugger and Inspection The goal of this project is to create debugging and code inspection tools for the Elixir programming language.
  • Erlang Package Manager (pakx) PAKX is a package manager for Erlang packages. An Erlang application may depend on various other Erlang packages. Each Erlang package is identified by its publisher, name and version. These packages may in turn depend on other packages and so on. This leads to generation of a direct acyclic graph (DAG) of applications and packages which depend on each other. To build the original application, all the dependent packages must be built first. In this case we traverse from bottom of the tree to the top in DAG. It has to manage all the repositories to various packages published by publishers. It will fetch the source code of all the packages whenever an application depends on them if they are already not present locally. Now the build tool can reference to these packages while building the original project. Assembler can, then, assemble the release which is ready to be used. Finally the programmer may want to publish this application as a package. The focus of this project is to write the package manager of the dependent packages for erlang applications. The compatibility of this tool with the existing tools like Erlang builder, dependency manager etc. is very crucial to the project.
  • MongooseIM: Implementation of XEP-0313 Message Archive Management It is a common desire for a user using XMPP for IM to want to store their messages in a central archive on their server. This feature allows them to record conversations that take place on clients that do not support local history storage, and also to synchronise their conversation history seamlessly between multiple clients.
  • Rebalancing for Disco’s Distributed File System The current version of Disco's distributed file system (DDFS) does not handle imbalanced clusters which may cause problems such as increased network traffic. The goal of this project is to implement a rebalancing mechanism for DDFS clusters to solve imbalance.
  • Zotonic Moules Repository Integration Currently, Zotonic users can only install modules from the command line, and the admin interface has limited options for managing modules. The goal of this project is to enhance Zotonic's module management with the ability to manage modules in the web admin/dashboard and also on the command line.