Fetching the latest programs, projects, and workspace data.
Find open source projects actively accepting contributors. Search repositories, filter by program milestones, difficulty tags, or tech stack.
Use our Orbit AI Matcher to find out! Get instant matching scores based on your developer skills, preferred frameworks, and contribution experience.
Convert your selected open-source project into a winning GSoC, LFX, or Outreachy application using Proposal Studio.
<p>The Kernel Mode-Setting (KMS) is a mechanism that enables a process to command the kernel to set a mode (screen resolution, color depth, and rate) which is in a range of values supported by graphics cards and the display screen. Create a Virtual KMS (VKMS) has benefits. First, it could be used for testing; second, it can be valuable for running X or Wayland on a headless machine enabling the use of GPU. This module is similar to VGEM, and in some ways to VIRTIO. At the moment that VKMS gets mature enough, it will be used to run i-g-t test cases and to automate userspace testing.</p>
<p>Tutorials serve as an invaluable way to familiarize oneself with new software. Cytoscape.js currently provides demos but lacks tutorials to tie together many ideas into a fully realized implementation. This project entails writing comprehensive but easy-to-understand tutorials which demonstrate the power of Cytoscape.js, both to those new to the project and to those wishing to tackle more ambitious projects with Cytoscape.js. I envision a set of tutorials moving from a level just beyond the demos, to a tutorial that details the creation of both mobile and web apps. Based on the current demos, I feel that there are enough examples of possible Cytoscape.js based webapps but each needs more documentation. There is very little guidance provided to new users as to why each demo works the way it does. To use a car metaphor, it seems like the demos are oriented more for going from 60 - 100 mph than 0-60. As mentioned in the provided description, each demo exhibits a single concept rather than tying them all together. Tutorials will tie together the disparate demos into more powerful (while still easy to understand) examples of Cytoscape.js</p>
<p>Rust is a rather new programming language, but it has already gained a lot of traction. It was voted “most loved” language by developers for the second year in a row in the StackOverflow developer survey. There have been projects made using Rust on everything from operating systems to game engines for Minecraft-like games. Despite this, IDE support is still lacking. KDevelop currently does not support Rust at all. The end goal of this project would be to add support for all the standard features an IDE should support for a language.</p>
Unikraft is a unikernel capable to boot in various environments and through quite a few boot protocols. From supporting the first version of Multiboot, being able to boot through the Linux Boot Protocol on ARM64 and having its own UEFI stub enabling the Operating System to load without a Bootloader, Unikraft has still a lot to learn with respect to the booting environments it knows. One such booting protocol that would be very useful is Multiboot2. This protocol represents a significant improvement over Multiboot version 1, providing improved flexibility in the realm of bootloaders. A notable improvement is the extended information provided by Multiboot2, which provides detailed and accurate communication between the bootloader and the operating system kernel during the bootstrapping process. In addition, Multiboot2 comes with a standardized tag system, enabling easier data and system configuration parsing between the bootloader and the kernel and allowing greater interoperability and better integration of boot modules. The introduction of optional commandline further enhances the flexibility of the boot process. Together, these enhancements contribute to a more robust and scalable bootstrapping mechanism, making Multiboot2 a better choice than Multiboot version 1. Concretely speaking, it would allow us to boot directly in 64-bit mode, while having access to pointers to the UEFI tables as well as the ACPI tables, unlike Multiboot 1, offering us access to more modern firmware interfaces. The task at hand involves integrating the Multiboot2 definitions as well as its corresponding bootstrapping code into Unikraft. Auxiliary scripts may be implemented to allow the automatic creation of Multiboot2-based Unikraft bootable images.
<p>This project proposes to add the support for APE14 in NDCube, which is a SunPy-affiliated project. In order to support both FITS-WCS and gWCS and hence support more future WCSs libraries, this project aims to convert the ndcube package to use a common WCS API. The new API has already been outlined by astropy’s APE14. Implementing support for APE14 will enable ndcube to use FITS-WCS and gWCS independently and hence increase the power and scope of the ndcube package. With this new feature, NDCube will become better placed to serve a wider array of n-dimensional data analysis needs from multiple astronomical communities.</p>
The Greybus module for Zephyr currently exists as an out-of-tree component, making maintenance, testing, and contributions difficult. This project aims to upstream Greybus as an official Zephyr module, improving maintainability, accessibility, and seamless integration within the Zephyr RTOS ecosystem. By upstreaming Greybus, BeagleConnect and other Greybus-enabled platforms will gain native support in Zephyr, removing the need for custom patches or kernel modifications. Originally developed by Google as part of Project Ara, Greybus is a lightweight, high-speed protocol designed for efficient, low-power communication across diverse hardware interfaces. While initially intended for modular smartphones, Greybus has since expanded into IoT and industrial applications, particularly in wireless sensor networks. This project will focus on cleaning up and refactoring the existing Greybus module, revamping its testing infrastructure, and ensuring compatibility with Zephyr’s CI/CD workflows. The successful completion of this work will enable seamless hardware-software interaction, making Greybus more accessible for embedded systems development within Zephyr.
This project proposes the development of faust2clap, a tool that integrates the Faust programming language with the CLAP (CLever Audio Plugin) standard. Faust is a high-level functional language for real-time DSP, while CLAP is a modern open-source plugin format gaining traction as an alternative to VST and AudioUnit. Currently, Faust does not officially support CLAP as a target architecture. The goal is to extend the existing faust2xx framework by implementing a CLAP architecture file and a new command-line utility, faust2clap. This will allow developers to compile Faust DSP code into fully functional CLAP plugins, supporting advanced features such as per-note modulation and sample-accurate automation. Deliverables include the tool itself, a reusable architecture backend, a suite of test plugins, and comprehensive documentation. The project has been developed in close collaboration with the Faust team and aims to be merged upstream as an official component of the Faust toolchain. By bridging Faust and CLAP, this project supports open plugin standards, expands deployment options for DSP developers, and modernises the Faust ecosystem.
<p>This project aims to add podcast support to Alligator. Alligator is a RSS feed reader and that makes it an ideal software for adding podcast support since both use a similar protocol. The integration will also allow users to search for new podcasts and a playlist support to queue them. The project also aims to provide integration with the Linux ecosystem using MPRIS and also to other platforms such as Android and Windows. With over 65% of listeners tuning into podcasts from portable devices the project will bring flexible improvements to the app UI focused on mobile devices while exploiting QtQuick’s support in designing convergent applications that conform the UI without increasing cognitive load on the user and provide an excellent overall experience.</p>
mitmproxy is a superb tool for security and privacy forensics. It currently supports HTTP/1 and HTTP/2, but lacks support for QUIC and HTTP/3. This leaves about 25% of the web's traffic in the dark. The project's goal is to change that. To achieve this goal, UDP support and layers for QUIC and HTTP/3 need to be implemented in mitmproxy. For UDP, stream-like readers and writers will be introduced. Facilitating a library will aid in implementing QUIC, preferably aioquic. The new HTTP/3 layer will be based upon mitmproxy's existing HTTP/2 layer. Once the project is complete, QUIC and HTTP/3 traffic can be inspected using mitmproxy as well, just like HTTP/1+2 today. As a bonus, DNS capabilities will also be available, as a proof-of-concept for UDP support.
<p><a href="https://docs.opencv.org/3.4/df/d0a/tutorial_js_intro.html" target="_blank">OpenCV.js</a> is a JavaScript binding for selected subset of OpenCV functions for the web platform. It allows emerging web applications with multimedia processing to benefit from the wide variety of vision functions available in OpenCV. OpenCV.js leverages Emscripten to compile OpenCV functions into asm.js or WebAssembly targets, and provides a JavaScript APIs for web application to access them.</p> <p>However, now the performance of OpenCV.js still have a big gap with Native, and it can't support real-time tasks very well, such as <a href="https://docs.opencv.org/3.4/df/d6c/tutorial_js_face_detection_camera.html" target="_blank">face detection</a> and <a href="https://docs.opencv.org/4.0.0/d5/d86/tutorial_dnn_javascript.html" target="_blank">face recognition</a>. The biggest reason is that the current version of OpenCV.js runs with single thread and no SIMD, which greatly wastes the parallel computing power of the CPU.</p> <p>But at this time, WebAssembly can reduce the performance gap between Web and Native. WASM now support multi-threading with Web Worker and shareArrayBuffer, and is going on supporting new v128 value types used for SIMD, which can both improve the parallel computing capability on Web.</p> <p>Therefore, the main goal of this project is to speedup OpenCV.js by multi-threading and SIMD.</p>
This project aims to develop a comprehensive Out-of-Tree (OOT) module for GNU Radio that enables amateur radio enthusiasts to incorporate FT8 and WSPR functionality directly into their applications. Currently, most operators rely on standalone applications like WSJT-X, limiting flexibility and integration possibilities. The proposed solution is to create modular, reusable components for encoding, modulating, demodulating, and decoding FT8/WSPR messages. These components will include: FT8/WSPR Message Encoder: Implementing standard message formats with validation for callsigns, grid locators, and signal reports FT8/WSPR Modulator: Building 8-FSK modulation for FT8 and 4-FSK modulation for WSPR with proper timing and tone spacing FT8/WSPR Demodulator: Creating components to detect signals, handle frequency drift, and extract weak signals from noise FT8/WSPR Message Decoder: Implementing error correction algorithms and partial decode support Integration Components: Developing example flowgraphs, time synchronization, and potentially QSO tracking features This module will allow experimentation with weak signal protocols, enable integration into complex signal processing chains, provide educational value for understanding digital mode implementation, and support development of new applications leveraging these protocols—ultimately bringing more skilled contributors to the GNU Radio community.
This proposal aims to develop an efficient data augmentation module for OpenCV that supports both basic image manipulation approaches and deep learning based approaches. The implementation plan can be divided into three parts: 1. The implementation of a comprehensive data augmentaion module in OpenCV that supports most basic image manipulation approaches. 2. Add supports for deep learning based data augmentation approaches. 3. Add supports for asynchronous and parallel computing. ONNX model can be loaded to produce deep neural outputs and multi-thread and multi-process techniques can be utilized to develop an asynchronous and parallel data augmentation module.
XFS is a file system that was designed for computer systems with large numbers of CPUs and large disk arrays. It focuses on supporting large files and good streaming I/O performance. Haiku Currently has XFS version 4 read support. The goal of this project is to get XFS version 5, Extended Attributes, Symbolic links and write support for Haiku.
<p>LiveHD only supports glibc-based Linux at the moment. We can extend support to other platforms like Alpine Linux and macOS, so more people can use it. Alpine Linux support also allows us to compose a more lightweight container for easier and faster deployment. Additionally, the infrastructure of the LiveHD project could use some improvement, and with that, the quality of the project and the development experience can improve significantly.</p>
<p>OpenMRS is an open source software platform which provides facilities to design of a customized medical system with no programming knowledge. So it consists of many modules which developed to execute many different functionalities. Attachment module enables the view and manages file attachments functionalities in the openMRS. So this proposal for enhancement of attachment module to v2.o release with 100% restful and open web app.</p>
This project aims to add Windows support to the previously Linux-only XMPP client Dino. Since Windows is installed on approximately 75% of all desktop/notebooks, this would greatly expand the possible audience of this XMPP client. Dino aims to be a simple-to-use XMPP client, as such, it makes sense to make onboarding easier by running on common platforms. Additionally, this project aims to add support for saving passwords in keyrings and adding support for SASL SCRAM, making passwords more secure in case the keyrings are.
<p>Add support of deprecation pragmas within module exports. This would ease the transition between different versions of the software by warning the developers that the functions/types/classes/constructors/modules that they are using are deprecated.</p>
Currently, Mixxx uses PortAudio as a high level abstraction over audio APIs across all supported platforms, which only exposes the common subset of all those APIs, missing Linux specific features and conventions. This implementation will add Pipewire audio API support to Mixxx for Linux, listen for PipeWire events to support soundcard hotplug and update routing UI according to changes made in an external patchbay. It will also allow Mixxx to route audio to and from any source/sink. This proposal also attempts to achieve ALSA comparable latency with the PipeWire backend.
This proposal aims to enhance CVE-BIN-TOOL by integrating support for different VEX triage functionality. The problem at hand is the limited scope of CVE-BIN-TOOL, which currently lacks extended VEX integration, hindering its ability to provide a holistic risk assessment. The solution involves refactoring the current workflow, implementing support for various VEX formats (such as CSAF, OpenVex, and CycloneDX), establishing linkages between SBOMs and VEX formats, and updating documentation and tests for usability. Through this project, we aim to provide cybersecurity professionals with a comprehensive tool for identifying and mitigating vulnerabilities effectively. The deliverables include a refined workflow, support for multiple VEX formats, documented linkage mechanisms, and updated documentation and tests.
Programming Protocol-independent Packet Processors (P4) is a domain-specific language for network devices, specifying how data plane devices (switches, NICs, routers, filters, etc.) process packets. BMv2 is a P4 software switch. Currently the BMv2 simulator supports v1model and Portable Switch Architecture (PSA). As the P4 use cases on the NIC side increases, so does the need for a P4 simulator that supports Portable NIC Architecture (PNA). In this project, I will focus on adding PNA support to BMv2. This proposal includes adding core subset of PNA to the BMv2 simulator; extending p4c BMv2 backend to target the updated BMv2 simulator; Identifying and Implementing various functionalities required by PNA as externs.
<p>Btrfs (B-tree filesystem) is a filesystem uses Btrees as its main on-disk data structure. It is based on Copy-on-Write (CoW) principle which means it does copy only when a write request is sent or a modification is necessary. Btree is used most in filesystem, database system. In Haiku, Btrfs is currently support read-only, the codebase only shows the basic structure, read operations, it lacks of core tree manipulation code, write supports, and other features. The project ideas request supporting write features for Btrfs. This will be accomplished in the following steps: Setting up userland friendly development mode for Btrfs, implementing tree operations (splittings, CoW, etc), adding more Btrfs structures if necessary, implementing write-feature functions.</p>
This project aims to enhance Simplenews newsletter module for Drupal 10, enhancing functionalities from existing modules while prioritizing usability, scalability, and compatibility. The project focuses on improving the Simplenews module by addressing specific issues, such as fixing the incorrect subscriber language for anonymous users , resolving bugs for users with blank email addresses, and adding a setting to disable per-user rendering. Key features include efficient subscriber management, streamlined newsletter creation, engagement tracking, and seamless integration with email service providers. Mentored by @azizos, the 8-week project emphasizes meticulous planning, task assignment, and time management, starting with frontend development. With a strong background in Drupal development and project management, the proposer aims to deliver a comprehensive, user-friendly enhancement for Drupal 10.
The Genetic Optimization Module for MBDyn seeks to integrate a genetic algorithm (GA) into MBDyn, a multibody dynamics simulation software, to enable optimization within simulation runs. As a super-element, the module will leverage MBDyn’s drive system—taking inputs from drives that expose simulation data and outputting optimized variables to other drives. Inspired by the mbdyn module’s structure, the project emphasizes a self-contained GA implementation in C++ to ensure minimal dependencies. The development is split into two phases: a 175-hour baseline solver with core functionality and a 350-hour fully-featured solver with advanced features and optional external library integration. This proposal targets the 350-hour project, aligning with the Google Summer of Code’s 12-week timeline (approximately 480 hours at 40 hours/week), delivering a robust optimization tool for MBDyn users.
This project aims to extend the functionality of the Eclipse Dash License Tool by adding support for Software Bill of Materials (SBOM) files as input, specifically in CycloneDX and SPDX formats. Currently, the tool can accept and process dependencies from Maven files or NPM package files, but lacks the capability to accept SBOM files as input - a feature that is becoming more standardized in modern licensing software. This proposed solution involves the implementation of specific file parsers for CycloneDX and SPDX formats, extracting and normalizing component data, and then integrating this data into the tool's existing workflow. In addition, this project will support the generation of enriched SBOM outputs that include updated licensing information whilst preserving the initial contents of the file structure and metadata. The final deliverables for this project include SBOM input support via new command-line arguments, file parsing, integration with the rest of the tool's existing workflow, enriched SBOM output generation, extensive testing, and explicit documentation.