Google Summer of Code 2018 Wrap Up

We were very happy to participate again in Google Summer of Code (GSoC): this was our fifth year! Our very special thanks to the awesome five students that contributed to our R&D work with their projects.

Here is a brief highlight of their work, in their own words.


RCU Binding for Lua tables - Caio Luiz Messias (Brazil)

"Being highly concurrent, the Linux kernel has a wide array of options for synchronization. My project was a binding for the Read-Copy-Update (RCU) API, which guarantees high data availability by never blocking reader threads, even during updates.

The project consisted of the implementation of a hash table, mimicking a standard Lua table, shared across multiple Lua states. This hash table is built on RCU facilities, which guarantee safe access by different Lua states running on concurrent kernel threads.

Participating in GSOC was a very enriching experience, with plenty of learning and growth opportunities. I was also able to experience how it is to work for an organization, with schedules, code revisions and rigorous testing, something we don't even come close at university."

Caio's work developed during GSoC 2018 can be found here.


Socket API for Lunatik- Chengzhi Tan (China/US)

"The purpose of this project was to develop a Lunatik library to provide network functionality to kernel scripts. The Lunatik socket library provides most frequently used APIs available for IPv4, TCP, and UDP. I/O multiplex API, poll is also included in this library. The library is implemented as a Linux loadable kernel module, binding the kernel internal implementation for the socket user-level API.

With GSoC students can get the chance to be involved in an open source project, which improves not only code skills but also my cooperative abilities. The most exciting part is that this is a rare chance to work with other people around the world."

Chengzhi's work developed during GSoC 2018 is available here.


Update the Lua binding to libgit2- Satyendra Kumar Banjare (India)

"This project aims at updating the Lua bindings to libgit2, allowing Lua users to use the Git core API from Lua. The new Luagit2 covers most of the important libgit2 modules. It was developed using Lua-C API, which provided us with a lot of flexibility to create functions that are very close to Lua-style. This includes returning multiple values from C to Lua, type checking of Lua userdata objects and error checks if anything goes wrong.

The tests for such a case of software development where the binding is written completely using C and final usage is in Lua was very exciting to write. I learned a lot of things. I improved a lot in my code style. I really enjoyed a lot working on my project."

Satyendra's work developed during GSoC 2018 can be found here.


Céu-Maker: easy-to-install, up-to-date integrated environment for Céu-Arduino and pico-Céu development

Anny Caroline Chagas (Brazil)

"Céu-Arduino supports the development of Arduino applications in Céu, while pico-Céu is focused on visual and interactive applications, and is composed of Céu and libraries for input, graphics, network, and sound.

In GSoC, we aimed to make Céu-Maker more attractive to programmers by improving tutorials and sample codes, providing a library for serial communication and offering a graphical interface for the programmer to choose the Arduino board for which they want to load their code."

Anny's work can be found here.


Interrupt-based drivers in Céu-Arduino - M Naveen Kumar (India)

Most operations in Arduino libraries freeze the rest of the application until they complete. Making use of interrupts allows programs to remain executing while the operation progresses and completes.

This project consisted of developing new interrupt-based drivers for Céu-Arduino, including Real Time Clock, OLED display and I2C, and some libraries on top of these drivers (e.g., RF transceiver, ultrasonic sensor an accelerometer).

Naveen's work can be found here.