> ## Content Index
> Fetch the complete content index at: https://www.process-one.net/llms.txt
> Use this file to discover other available public pages before exploring further.

# Google Summer of Code hosts ejabberd projects
- URL: https://www.process-one.net/blog/google-summer-of-code-hosts-ejabberd-projects/
- Published: 2017-05-23T22:00:00.000Z
- Updated: 2024-09-19T09:25:43.000Z
- Author: ProcessOne

As you may know, our [ejabberd XMPP server](https://www.ejabberd.im/?ref=process-one.net) is written in Erlang. The Erlang VM was originally designed by Ericsson to support distributed, fault-tolerant, soft-real-time, non-stop applications. What you may not know is that ejabberd is part of the [BEAM Community](https://beamcommunity.github.io/?ref=process-one.net) – a group of projects that run on the Erlang VM.

![](https://www.process-one.net/content/images/2024/09/GSoC-4.jpg)

Since 2013, BEAM Community hosts relevant Erlang and Elixir projects, making it easier to participate in the Google Summer of Code (GSoC) (and similar initiatives), giving interested students a wide range of projects to choose from.

BEAM Community has been accepted again in 2017 as a [GSoC mentoring organisation](https://summerofcode.withgoogle.com/organizations/5912941485359104/?ref=process-one.net). This year, nine projects have been accepted:

- For [Lasp](https://lasp-lang.readme.io/?ref=process-one.net):
  - A Biparite Proposal for Lasp’s Lacking Documentation by Matt Wiese
  - Implementing a Real World Application in the Lasp Programming Language by goncalotomas
- For [Erlang](https://www.erlang.org/?ref=process-one.net):
  - ETS support for Erlang Lab by Kacper Mentel
- For [Elixir](https://elixir-lang.org/?ref=process-one.net):
  - A code formatter for Elixir by alexjiao
  - Language Server Protocol implementation for Elixir by Nishith Kumar Shah
- For [Barrel](https://barrel-db.org/?ref=process-one.net):
  - Implementation of a RabbitMQ Plugin for BarrelDB by Tah Teche Tende
- For [Zotonic](https://zotonic.com/?ref=process-one.net):
  - Port Zotonic Shell Scripts to Erlang EScript by Blaise M.
- For [ejabberd](https://www.ejabberd.im/?ref=process-one.net):
  - Ejabberd support for “let’s encrypt” ACME protocol by Konstantinos Kallas
  - Server-to-Server stream management support for ejabberd by Anna Mukharram

You can find more details about these projects [here](https://github.com/beamcommunity/beamcommunity.github.com/blob/master/%5Fposts/2017/Home.md?ref=process-one.net), but first lets look at the ejabberd projects.

### Support for “let’s encrypt” ACME protocol

The Automatic Certificate Management Environment (ACME) protocol is a communications protocol for automating interactions between certificate authorities and their users’ web servers, allowing the automated deployment of public key infrastructure at very low cost. Supporting this protocol will reduce the complexity of acquiring certificates for TLS encryption, via the “Let’s encrypt” certificate authority.

The final goal of this project is for ejabberd to fully support the ACME protocol and thus provide an easy and cheap way of acquiring security certificates. This project is executed by Konstantinos Kallas, mentored by Evgeny Khramtsov from ProcessOne.

### Server-to-Server stream management support

The goal of this project is to implement XEP-0198 for server-to-server communication in ejabberd. This extension allows to request stanza acknowledgement and quickly resume session. Any messages that were not delivered over previous connection will be retransmitted during session resumption without duplication. This project is executed by Anna Mukharram, mentored by Holger Weiß, an experienced ejabberd & XMPP developer.

### Google Summer of Code

ProcessOne is committed to grow the interest of student developers in XMPP, ejabberd and real-time technologies. Through initiatives like the BEAM Community and GSoC involvement, we can have bigger and more positive impact, as well as bring valuable improvements to existing projects.