Skip to content

PROJECTS

GNU Project GSoC projects

64 accepted projects across 8 cycles, 2016 to 2026. Each one links to its contributor, mentors and code.

Projects listed

64

Across 8 cycles

In GSoC 2026

5

Back this cycle

Busiest cycle

2016

15 projects

Mentors named

61

Across all listed projects

First cycle

2016

Latest 2026

Projects per cycle

GNU Project, 2016 to 2026

  1. 15
  2. 5
View as table
GNU Project projects per cycle
Projects
201615
201713
20189
20195
20207
20210
20220
20237
20243
20250
20265
  1. Develop a Mobile Phone User Interface for GNU XaoS

    Avinash-Codes

    GNU XaoS is a real-time interactive fractal zoomer that currently lacks a mobile-optimized UI. This project will: (1) implement a touch-friendly QML...

  2. Extend support for ARM in GNU Boot

    f13r

    Computers with ARM architecture are prevalent but GNU Boot currently doesn't support them. My focus has also shifted from the classic x86_64 laptops...

  3. GNU Aris, UI and Feature Enhancements

    Fares A. Bakhit

    This project's goal is to enhance the usability and accessibility of GNU Aris. It addresses the issues that students currently struggle with when...

  4. GnuCOBOL: Implement Initial Object-Oriented Programming Support

    Saurabh Kumar (@kmr-srbh)

    GnuCOBOL currently has no support for the Object-Oriented Programming (OOP) features defined by the ISO standards ISO/IEC 1989:2002 through ISO/IEC...

  5. Port parts of GNU libcdio to Rust

    skr4n

    This project introduces Rust into GNU libcdio, with the goal of modernizing its codebase along with the benefits of Rust's memory safety. This...

  1. Integration of GNU Anastasis With GNU Taler Wallet

    Amr AbdelhadyMentored by Christian Grothoff, Iván Ávalos

    The GNU Anastasis is a key recovery system that allows the user to securely deposit shares of a core secret with an open set of escrow providers, to...

  2. Add source encoding and literal conversion to the GnuCOBOL compiler

    AMaherMentored by Simon Sobisch, James K. Lowden

    COBOL source files may use different encodings. Commonly, these use some 8-bit character encoding like ISO-8859-15 or an EBCDIC one "transferred as...

  3. GNUnet-Transport Next Generation (TNG) Communicator plugins

    ShichaoMentored by Martin Schanzenbach

    This project aims to implement a new communicator for GNUnet's Transport Next Generation (TNG) using the HTTP/3 protocol. The communicator will be...

  1. Integration of GNU Anastasis with the GNU Taler Android wallet

    Iván ÁvalosMentored by Christian Grothoff, Florian Dold

    GNU Anastasis is a distributed and password-less key backup and recovery system. It allows users to safely backup keys by giving shares to various...

  2. lilypond - Fix Beaming Patterns/Beam Subdivisions and Tuplets

    Jason YipMentored by Carl Sorensen

    Many bug reports from almost 10 years ago to even recent times report that GNU Lilypond has been unable to correctly render note subdivision beams...

  3. Porting Rust into GNU/Hurd

    Vedant TewariMentored by Samuel Thibault

    The goal of this project is to make the Rust language available on the GNU/Hurd operating system. Currently, there is no official Rust support for...

  4. aris - Add a web user interface to GNU Aris

    Saksham AttriMentored by Zoltan Kovacs, AndreasEbets, Alexander Thaller

    The project aims at extending GNU Aris by adding a web user interface. It involves some design changes in the GUI and migrating the current GTK based...

  5. Add a web user interface to XaoS

    abhishek_tiwariMentored by Zoltan Kovacs, Anurag Aggarwal

    The project aims to enable XaoS, a fractal program, to function effectively on web browsers through the use of Qt. Currently, XaoS requires the user...

  6. Parameterized Packages for GNU Guix

    SarthakMentored by g_bor, pjotrp

    Parameterized packages will provide users with a simple way to configure many aspects of packages, à la Gentoo USE flags. This project will add two...

  7. GNUnet Transport Next Generation (TNG): Communicator plugins

    MarshallMentored by Christian Grothoff, Martin Schanzenbach

    The protocols supported by Transport Next Generation are limited to TCP and UDP. I will implement a new communicator plugin to transport data using...

  1. Adopt the SMuFL music font encoding standard

    WolfGangstaMentored by Urs Liska, Werner Lemberg-1

    I would like to implement support for the SMuFL music notation font standard, in order to give LilyPond access to the growing number of notation...

  2. V3 Rewrite with Symfony

    Hugo SalesMentored by Diogo Cordeiro, XRevan86

    GNU social is a communication software used in federated social networks, however, it relies on outdated and unmaintained libraries. To this end,...

  3. Web-based graphical user interface for LibEuFin

    Heng Yeow TANMentored by Martin Schanzenbach, Florian Dold, Christian Grothoff +1

    LibEuFin is a software package that provides access to (currently mainly European) banking APIs via a simplified interface. The goal of this project...

  4. Image registration with the celestial sphere and non-linear warping in Gnuastro.

    Sachin Singh-1Mentored by Mohammad Akhlaghi

    This project aims at working towards the implementation of libraries for image registrations and non-linear warpings required to register them for...

  5. Support arbitrary precision and export high quality output

    Anurag AggarwalMentored by Zoltán Kovács

    XaoS currently cannot support very deep zooms because the 80-bit floating-point arithmetic used runs out of precision before too long. It should be...

  6. Machine Interface for GNU Poke

    kostaschMentored by Jose E. Marchesi

    GNU poke is an interactive, extensible editor for binary data. Not limited to edit- ing basic entities such as bits and bytes, it provides a...

  7. Wget2 - LibWARC Implementation and Integration

    Suhas K SMentored by darnir

    WARC, short for Web ARChive, is a data storage format for storing archived web pages. It is an extension of the ARC format, traditionally used by web...

  1. GNU Guix - Guix Deploy

    Jakob L. KreuzeMentored by Christopher Webber

    Add tooling to the Guix package manager for configuring and building local "copies" of remote systems and transferring those copies to their...

  2. GNU social - Optimizations on Load Balance System and Storage Usage

    Miguel DantasMentored by Diogo Cordeiro, MMN-o

    GNU social is a communication software used in federated social networks. This project will: • Improvements on the Federated Requests Queue (which...

  3. [GNU Wget] HTTP/2 Test Suite

    Kumar MallikarjunaMentored by darnir, Tim Rühsen

    Adding HTTP/2 + TLS support to the test library and h2 specific tests.

  4. syscall/setsockopt optmization on various platforms, working on the testsuite for the libmicrohttpd2 API

    ng0Mentored by Christian Grothoff

    To optimize syscall/setsockopt optimization on various platforms (Debian Linux, FreeBSD 12-RELEASE-p3, NetBSD-CURRENT), and to work on the testsuite...

  5. Improvements on GNU social's network systems

    Bruno CasteleiroMentored by Diogo Cordeiro

    GNU social is a communication software used in federated/decentralized social networks. In order to archive such decentratization, some communication...

  1. Improve Core Animation implementation and integrate it into AppKit

    Stjepan BrkićMentored by Fred Kiefer, Ivan Vučica

    GNUstep is a console, desktop and web application development framework for development using Objective-C. It is based on OPENSTEP specification, and...

  2. Automake : Parse Makefile.am using an Abstract Syntax Tree

    Vishal GuptaMentored by Mathieu Lirzin

    The goal of the project is to generate an abstract syntax tree from parsing the input Makefile.am . It has separate lexer, parser and tree generation...

  3. GNUnet Web-based User Interface

    Phil BuschmannMentored by schanzen

    Implementation of a Web-based UI for GNUnet similar to GNUnet-Gtk with a yet to be determined framework such as Angular2. This includes the design...

  4. libjit - register allocation

    Jakob LöwMentored by Aleksey Demakov

    At the moment register allocation in libjit is rather simplistic. The goal of this project is to implement proper data-flow analysis and register...

  5. ActivityPub plugin for GNU Social

    Diogo CordeiroMentored by MMN-o

    The project idea aims at developing a plugin (as GNU Social is true to the Unix-philosophy of small programs to do a small job) that will implement...

  6. GNU Guix (Cuirass): Adding a web interface similar to the Hydra web interface

    Tatiana SholokhovaMentored by Ricardo Wurmus, Gábor Boskovits, Ludovic

    Cuirass is aimed to monitor a git repository containing Guix package definitions and build binaries from these package definitions. The state of...

  7. GNU Taler - Payment/Donation Buttons and Code-less Payments with GNU Taler

    Shivam KohliMentored by Florian Dold

    GNU Taler is a new electronic online payment system which provides privacy for customers and accountability for merchants. To pay with Taler,...

  8. CLISP - Integrate the SICL compiler into CLISP

    Charles ZhangMentored by Sam Steingold, Bruno Haible

    This project aims to incorporate components from Robert Strandh’s SICL compiler called Cleavir into CLISP. Adding Cleavir would open up the...

  9. Automake : Modularize Automake to improve the test-suite performance

    Matthias PaulmierMentored by Mathieu Lirzin

    This project aims to modularize the implementation of Automake to make it more easily extendable and to improve the test-suite performance.

  1. GNUstep - Make WebCore run on top of GNUstep

    theiostreamMentored by Fred Kiefer, Ivan Vučica

    A longstanding problem in the GNUstep stack has been the absence of a web browser, due to the lack of a modern and feature-complete backing web...

  2. Javascript Backend for Gnu Guile

    Ian-1Mentored by Christopher Webber

    To implement a Javascript backend to Gnu Guile, capable of compiling programs for execution in a modern web browser. This proposal completes work...

  3. [GNU Wget] Design and implementation of statistics module

    rootkeaMentored by Tim Rühsen (rockdaboot), Darshit Shah, Ander Juaristi

    At the end of the project, the following objectives should be met: host-based statistics are maintained and presented to user when asked to do so...

  4. Ring - Create a C++ plugin for Ring

    HouminMentored by Stepan Salenikovich

    The plugin will read incoming messages and detect a particular sequence (keyword). The sequence is a written message in some scripting language (to...

  5. Improving Kawa's gnu.bytecode using ObjectWeb ASM

    Tom BoussoMentored by Per Bothner, jrh

    The goal of this project is to improve the gnu.bytecode library by creating a version of it which uses ObjectWeb ASM to generate classfiles, rather...

  6. Multiple qualities of video (GNU MediaGoblin)

    varadhyaMentored by Boris Bobrov, Christopher Webber

    GNU MediaGoblin is a well known free software media publishing platform where people can see and share their media. Even though we can think of it as...

  7. [GNU Wget] Design and Implementation of Test Suite Using Libmicrohttpd

    Didik SetiawanMentored by Darshit Shah, Ander Juaristi

    At the end of the project, the following objectives should be met: Wget2 will use Libmicrohttpd, a small but powerful C library of HTTP server code,...

  8. wget2 - Design and implementation of a framework for plugins

    Akash RawalMentored by Tim Rühsen (rockdaboot), Darshit Shah, Ander Juaristi

    Ability to extend wget for a paritcular purpose using dynamically loadable modules would be a nice addition. (Reference idea)

  9. JavaScript for info-style navigation

    Mathieu LirzinMentored by Gavin Smith, Per Bothner

    The info program is very bare-bones (no fonts or images). On the other hand, the info program has a number of conveniences for browsing...

  10. Improving the Internal Structure of Chords

    Charles WinstonMentored by Carl Sorensen

    LilyPond's internal representation of chords is limited. As of now, it can mostly only represent the individual notes themselves that make up the...

  11. Ring: NodeJS Plugin for Seamless Cross-platform Client Development

    asalmanMentored by Adrien Beraud

    A big problem impeding Ring development is developing (and providing support for) different Ring clients running on disparate systems. What this...

  12. Proposal GNU Ring project Olivier Grégoire

    Olivier GasulegMentored by Guillaume Roguez

    I will work on the GNU Ring project. This project is, at the moment, unstable due to a lack of automated tests. Only a part of the code is tested.I...

  13. Guix rewrite build daemon in Guile Scheme

    reepcaMentored by rekado, Ludovic Courtès

    This project proposes to replace the existing C++ guix-daemon with one implemented in Guile Scheme, for purposes of hackability and unity of code...

  1. Rust implementation of GNUnet utils

    kc1212Mentored by Jeff Burdges

    Improve the Rust implementation of GNUnet utils, possibly including adding support for asynchronous IO using mio, or perhaps a higher level...

  2. GCC - Further work on addressing mode selection

    erikvargaMentored by Oleg Endo

    The aim of this project is to improve the addressing mode selection pass in GCC that was made the previous summer.

  3. ScholarLY Annotations

    jefferyshiversMentored by Urs Liska, Jan-Peter

    The ScholarLY 'annotate' module is a new tool, currently in a workable preliminary state, which extends the LilyPond music engraving software to add...

  4. A private and secure auctioning library

    mateMentored by Christian Grothoff

    This project is about developing a secure and private auctioning library incorporating an algorithm by Felix Brandt. We modified the algorithm to use...

  5. Cleanup ffcall

    Prasad_arunMentored by Avneet

    GNU Libffcall is a collection of four libraries which can be used to build foreign function call interfaces in embedded Interpreters: Avcall -...

  6. Code Refactor

    JayitraMentored by Jishu, Avneet

    GNU Libffcall is a collection of four libraries which can be used to build foreign function call interfaces in embedded Interpreters: Avcall -...

  7. Integrating npm into the Guix ecosystem

    jlichtMentored by David Thompson, Christopher Allan Webber

    This project will allow Guix hackers to more easily package software that is distributed through the Node Package Manager (npm), as well as allowing...

  8. GCC - Replace Libiberty with Gnulib

    Ayush GoelMentored by Manuel Lopez-Ibanez

    For projects using Libiberty, most of that functionality can be provided by Gnulib and therefore there is no real advantage to the GNU project to...

  9. Rewrite Hydra to be more integrated with Guix

    mthlMentored by David Thompson, ludo

    The idea of this project is to write a continuous build system in Guile Scheme inspired by Hydra, in order improve Guix infrastructure parenthood.

  10. [MediaGoblin] Subtitle Interface along with keyboard hotkeys for video player

    saksham1115Mentored by Boris Bobrov

    Building a subtitle interface for the current video player. Popular formats of the subtitles would be supported along with multiple...

  11. Lilypond - Allow spanners to cross voices

    starrynteMentored by Jan-Peter

    Lilypond is a free music notation program that produces quality sheet music. The music is first written in a text format; Lilypond then processes the...

  12. GCC - Development of GIMPLE Front End

    Prasad GhangalMentored by richardguenther@gmail.com

    The purpose of this project is to develop a tool which will ease the process of unit testing in gcc. Writing a test-case in C to generate the...

  13. Implement xattr Support of Hurd Project

    Shengyu ZhangMentored by Justus Winter, rbraun

    The current hurd's ext2fs server uses a reversed field in inode to store passive translator setting. It is a ad-hoc method and causes that hurd's...

  14. Porting GuixSD to GNU/Hurd

    ManolisMentored by Justus Winter, ludo

    In this project, we would like to port the Guix Software Distribution to GNU Hurd. By the end of the project, Guix should be able to handle and use...

  15. Liberty Eiffel meets Windows

    Petru GuritaMentored by Paolo Redaelli

    Liberty Eiffel language available on windows environment.

Data: Google Summer of Code public archive. Official GSoC archive