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.
This project aims to update the implementation of VoIP support to concur to the latest Matrix spec changes, and add features to the nheko client which adhere to the protocols. A final long term goal would be to incorporate every new feature available under the protocol, which will clearly last outside the project period
<p>Integrated script editor in Godot lacks features found in editors like VS Code, Sublime, Emacs, etc. These editors are also more popular among developers and therefore are better to switch for usability. However, to implement core functionalities such as - Diagnosis, Registering custom symbols, jump to definition, etc a Language Server structure has to be adopted. For example, the client (say vs code) will communicate the godot language server to give desired result.</p> <p>Microsoft's Language Server Protocol (LSP) is flexible and powerful to implement these functionalities. It also supports many editors - VS Code, Atom, Sublime, etc. Hence, instead of writing complete extensions for each editor (client) using LSP servers can be reused while the client which is an editor extension has to be only re-written.</p>
<p>The purpose of this project is to implement some of that missing features as well as functionality that will be unique to the iOS client. Various advanced features will be implemented like CallKit, 3D Touch, Onboarding tooltips, etc.</p>
<p>Dendrite is a matrix server built in GO.<br> It's known that our state of the art Synapse is reaching it's limits in terms of performance.<br> Dendrite is an effort to provide fast, scalable and efficient alternative.<br> Although very promising, dendrite has a long way to go before it's ready to handle matrix's rooms.<br> This project is an effort to push dendrite towards feature completion.</p> <h4>Goals</h4> <p>Go over the current state of federation in dendrite and fill in the missing APIs.<br> Improve the reliability and stability of several components, while freeing them of known issues.<br> Add commonly used but missing functionalities.</p>
<p>This project is about extending Ruma's API coverage. The final goal for this project is to have a more complete coverage of the Matrix spec, along with implementation of two recent MSCs in Ruma.</p> <p>The three main milestones for the project are the following:</p> <ol> <li>finishing <a href="https://github.com/ruma/ruma/milestone/3" target="_blank">identity-service-api</a></li> <li>implementing <a href="https://github.com/ruma/ruma/issues/479" target="_blank">MSC2403 (Add "knock" feature)</a></li> <li>implementing <a href="https://github.com/ruma/ruma/issues/478" target="_blank">MSC1946 (Secure Secret Storage and Sharing)</a></li> </ol> <p>However, other tasks are part of the project schedule. These are of a smaller scale, but aim to help me get more familiar with the code base, or just generally improve Ruma.</p>
<p>I've been personally using Riot and Matrix daily for months at this point and have seen many issues thrown around in the development rooms between the core developers. I have made it my task to alleviate some of these, Analytics for one, the devs have been driving blind as far as how people use the app so providing fully anonymous analytics is very important. Discoverability is currently another issue, Riot is a completely frontend application so spidering it is near-impossible, this can be solved through making a read-only server generated view for spiders to work on. Time permitted I will also touch on making a slightly more involved bridging library and look forward until federation stabilises so that I can make an S-S bridge (no HS needed)</p>
<p>My project is to implement a complete micro blogging system on top of Matrix. With the available infrastructure, I can build a web client for Matrix designed specifically for this.</p>
<p>Syslog-ng is a famous log management software with content-based filtering, rich filtering capabilities, flexible configuration options, TCP transport and many other features. The project aims to implement a automated release generation tool for the Syslog-ng project considering the current release requirements of the project.</p>
<p>The aim of this project that is to develop a Redis based queue interface which could be an alternative to the disk queue.</p>
<p>The Unified Push Server Database is currently based on MySQL/PostgreSQL, and the data is all stored in one schema. Database updates are handled by a JMS broker. However, when this system is put under pressure with a high level of users and an intense quantity of push metrics it is unable to perform optimally. The reality here could be a poor user experience with slow message delivery, dropped messages or the possibility of service unavailability. As messages begin to exceed millions, this will become a bottleneck for the system and one which needs to be addressed and engineered with scalability in mind.</p> <p>This project will investigate the possibilities of using different types of databases and methods to process large volumes of data. This will be a Proof of Concept that will aim to research Apache Kafka and Apache HBase as possible solutions to improve the real-time experience of the push metric of the AeroGear Unified Push Server.</p>
This project aims to enhance the multi-select plugin in the Blockly workspace by integrating the IDragger feature of Blockly 11. Currently, the plugin uses a custom block dragger, which has limitations, such as the inability to select certain workspace components like comments. The project proposes to implement a new MultiselectDraggable class that captures all selected blocks, allowing for individual drag operations. Additionally, the proposal includes testing the updated multi-select plugin with other existing Blockly plugins to ensure compatibility and resolve any conflicts. The tentative schedule outlines tasks for integrating IDragger and cross-testing with other plugins, with deliverables including code implementations, test environments, reports on errors and fixes, and a tentative timeline for completion. Future work suggestions include fixing issues related to the DragSelect library, improving performance, and integrating the plugin into App Inventor.
Add experimental support to rustc for building and running procedural macros as WebAssembly. Procedural Macro crates can opt in for being compiled to WebAssembly. This wasm-proc-macro will be a wasm blob sandboxed using WASM. It will interact with the compiler only through a stream of token and no ability to interact with the outside world.
<p>Strimzi is a project about running Apache Kafka on Kubernetes and OpenShift. An important component of Strimzi is Amqp-Kafka bridge which as the name suggests bridge Amqp clients to Apache kafka. The idea is to extend the capability of bridge to support HTTP client too. As proposed, The bridge will be able to provide an interface to link HTTP clients and kafka bridge.</p> <ul> <li>HTTP clients can publish messages to kafka.</li> <li>Clients can consume messages from kafka.</li> </ul>
A lot of work has been done to parallelize the Rust compiler frontend, with notable success in code generation and some post-HIR lowering stages. Other critical components, such as lexical parsing and macro expansion, are still implemented serially. Macro expansion is fundamental in Rust, enabling code generation at compile-time based on patterns and user-defined rules in the source code itself. However, due to dependencies between macros and the strict ordering of name resolution, its inherently sequential nature poses a significant challenge for parallelization. Currently, macro expansion and import resolution are tightly coupled and executed sequentially, making parallel execution difficult. This project aims to develop a parallel and order-independent algorithm for these two processes, improving compiler performance while maintaining correctness. Addressing the dependencies and execution order constraints could significantly reduce compilation time and enhance the compiler's overall compilation speed.
The Rust programming language supports Unicode in identifiers, similarly to other modern programming languages such as Go, C++, and JavaScript. The main goals of this project are supporting Unicode identifiers in GCC Rust and improving their location information for better error messages.
lpython is a statically typed compiled programming language with syntax inspired by Python programming language. lpython also aims to have first-class support to work with Python and C libraries. lpython has multiple backend targets like C, C++, and LLVM IR that can be compiled to target executables with appropriate C/C++ compiler or the LLVM compiler toolchain. As lpython is statically typed and ahead-of-time compiled it offers much better performance than cpython. The current state of lpython is not feature-complete nor bug-free. I propose to add an interactive shell for lpython, so that the developers can quickly prototype ideas, and improve the debug information generated for the LLVM backend so that users can execute a single line of code at a time and pretty print variables and complex datatypes.
The goal of the proposal is to implement bindings for C++ based Elastica++ to the python based PyElastica, to achieve speedups. It covers selecting a suitable C++ build system and setting up the compilation architecture, writing binding code using pybind11 or alternative methods, benchmarking against existing Python implementations, expanding unit tests, polishing documentation and typestubs, and updating the CI pipeline for building and testing on multiple Python versions.
Currently there is obsolete `tests/ui/issues`directory in `rustc` test suite which was used to store regression tests in it. Now with the growth of compiler this folder is basically unmanageable, test names don't explain object of testing, and they are not sorted in any way. Nowadays new regression tests are getting into the fitting `tests/ui/`subdir, and my project proposes reorganization of `tests/ui/issues` directory by observing and sorting each test to matching directory.
StableMIR aims to provide a stable Rust compiler interface via a stable_mir crate on crates.io, shielding external tools from internal changes. Currently, the dependency between stable_mir and rustc_smir requires hard-coded versions in the rustc_smir crate, making it harder for the user to select which stable_mir crate to depend on. This project will invert the dependency, refactor the crates, and establish infrastructure—including build checks, testing workflows, and automation, easing maintenance for rustc developers and future contributors.
<p>This project aims to polish the current graphics features of Scilab such as zooming, datatips and interactive curve edition through plotting. Usually the Scilab is widely used by students and engineers as a completely free and open source numerical software solution for fast prototyping and data visualization. In this context the user experience is dictated by how well one can view and easily interact with its data. This makes the plotting capabilities and interactions, besides performance, a key factor of the perceived easiness and software quality.</p>
gccrs is a full alternative implementation of the Rust language ontop of GCC with the goal to become fully upstream with the GNU toolchain. One of the steps to reach its implementation counterpart's parity (rustc) is the support of inline assembly. Enabling this feature allows programmers to work on low level situation where some extra performance is always needed. The project focuses on adding implementation for two built-in Rust macros: asm!(), and global_asm!(). The gcc compiler will be able to detect parse the assembly code within asm!, and global_asm! macro, converting them to gcc assembly format to eventually generate code.
<p>Lua is a powerful, efficient, lightweight and dynamically typed scripting language supporting a variety of different programming paradigms. Typed Lua extends Lua with an optional type system allowing the use of both static and dynamic typing in the same code base, while preserving existing Lua run-time semantics. It achieves that by introducing optional type annotations and applying local type inference. This richer type system not only enforces stronger program behavior guarantees, but also facilitates the development of more powerful developer tools.</p> <p>Programmers nowadays expect that their editors/IDEs suggest accurate completion candidates, perform asynchronous - as you type - error checking and support type queries such as "go to definition" or "find all references".</p> <p>The main goal of the project is to add such features for Typed Lua in a wide range of popular editors. Furthermore, it shall be investigated how a modern, asynchronous editor plugin architecture could be designed.</p>
To build a DJ application with two decks in Pharo, I will make use of three libraries: Phausto for audio file playback (at variable speed), equalization, and filtering. Spec for building a browser to visualize audio files in a folder together with their metadata, and to organize these files into playlists. Bloc for the visualization of audio waveforms and the rendering of UI widgets to control playback speed, pitch, levels, the equalizer, and filter cutoff and resonance. As a first step, Phausto will be used to load and simultaneously play two audio files, mixing them via the Phausto API. Once the audio engine is in place, a Spec application will be built to browse audio files and load them into either of the two decks. With the file browser complete, a conventional user interface will be added to control the mix between the two tracks and their equalization. The Phausto standard library will then be used to add a delay effect per deck. With the DJ application running, final polish can be applied in the form of BPM detection and track quantization, which requires implementing peak detection for audio files within Pharo. Deliverables: The Spec application with audio file browsing and audio playback will be delivered before the first evaluation. The audio visualization and UI built with Bloc will be delivered halfway between the first and final evaluations. Extra features (BPM detection and quantization) will be added and tested before the final evaluation.
The proposed GSoC project aims at integrating support for the Faust audio programming language into HISE, an extensive framework for the creation of sample-based virtual musical instruments. There are multiple ways to accomplish the integration, ahead-of-time compilation and just-in-time compilation, each with their specific benefits and shortcomings. The most straight-forward method involves ahead-of-time compilation of the Faust code into a dynamic library which the HISE instrument can interface with. This works well for finished products which will be exported and compiled once, but run many times. During prototyping, however, build time is essential and relinking the complete instrument would be excessive. In that case machine code will be generated just-in-time (JIT) from the Faust source code whenever it is modified without recompiling or linking the rest of the instrument. Faust already provides the necessary mechanisms for just-in-time compilation via LLVM, which will be tied to suitable data structures inside HISE. Lastly HISE also provides an integrated development environment (IDE) with a syntax-highlighting text editor to the instrument developer. Programming the instruments in Faust should be an on-par experience to the developer when comparing to other supported languages, e.g., SNEX and JavaScript. Therefore the existing development environment will be extended to support the Faust language, while allowing the developer to still use their editors and tools outside of HISE.