GSoC/GCI Archive
Google Summer of Code 2014

BEAM Community

License: Apache License, 2.0

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 the Elixir programming language, Disco, a distributed computing framework originated from Nokia, 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 On Windows Elixir is a functional programming language which is concurrent, distributed and fault-tolerant thanks to the Erlang VM. The goal of this project is to bring Windows support to Elixir, by providing solutions and documentation for building and running Elixir on Windows. This will consequently enable Windows-based developers to explore this powerful yet enjoyable language.
  • Live Streaming for Swirl Project The live streaming feature in Swirl Project will facilitate its users to instantly share or broadcast any live media content. The users will not need to wait for the event to finish before they can start accessing and sharing the content with their friends !
  • MongooseIM: Implementation of XEP-0280 Message Carbons Currently many XMPP servers handle message stanzas sent to a user@host JID with no resource by delivering that message only to the resource with the highest priority. If the target user is online with multiple resources, a conversation ensues on one of the user's devices; if the user subsequently switches devices, parts of the conversation may end up on the alternate device. XEP-0280 defines an approach for ensuring that all of my devices get both sides of all conversations.
  • Project: Disco Idea 1: Disco worker in more efficient programming languages The goal of this project. There are existing implementations of worker interface for Disco. The main one was written in Python, the second I've seen - in OCaml. Because workers are responsible for carrying out the tasks, it may be important for different applications, to write them in more efficient language (Haskell).
  • Support For The Federation of Servers in Zotonic Zotonic’s approach to web development and the choice of Erlang is interesting. The field of web frameworks is very competitive and despite all the features Zotonic has, some websites have a large number of simultaneous users and must be resilient against failures. A way to solve this problem is distribute the content of websites across multiple servers and data centers. This project provides the development of the building blocks needed to improve fault tolerance, performance and data locality.