Send in your ideas. Deadline June 1, 2024

41 New Projects Awarded NGI0 Grants

We are happy to announce 41 new projects have been awarded an NGI Zero grant. That means 41 teams and individuals working on great ideas that contribute to the Next Generation Internet. Projects cover eight of the ten layers of the NGI technology stack, from trustworthy open hardware to services and applications which provide autonomy for end-users.

What jumps out in this round is the large number of open hardware projects. There is an increasing interest in gaining user autonomy on the chip level but there is a need for more tooling to realize that. The number of projects in this round show we're in a fruitfull phase of strengthening open source in hardware. Another trend is the increasing popularity of memory safe languages on all layers of the technology stack. These languages protect against certain memory safety vulnerabilities by automating memory management.

NGI Zero funding

In this round projects received funding from two NGI Zero programmes. The NGI0 Entrust program supports people who are working on privacy and trust enhancing technologies. In this round, 22 teams received funding within this program. The other 19 teams were selected for the NGI0 Core program which supports projects that improve the open Internet architecture. NGI0 programs have rolling calls with a deadline every two months. If you have a good idea that contributes to a human-centered internet you can submit a proposal. The next deadline is April 1st.

Meet the new projects

(you can click or tap on the project name to fold out additional information)

Trustworthy hardware and manufacturing

nextpnr_large — New place and route algorithms for large FPGAs
The nextpnr-large project focuses on enhancing digital circuit design for large Field-Programmable Gate Arrays (FPGAs), which are complex chips used in everything from consumer electronics to mobile phone base stations to cameras to AI accelerators to internet backbone infrastructure to advanced computing systems. Traditionally, designing these chips has been a highly specialized and time-consuming task, due to the complexity and computational demands of arranging and determining efficient wiring between the millions of tiny logic blocks they contain. However, thanks to the CTU in Prague and openXC7 project's collaboration with NLnet, the open-source tool nextpnr is being expanded to tackle larger, more advanced FPGAs. This development means that the process of designing circuits for these high-capacity chips will become more accessible and efficient, potentially leading to faster, more energy-efficient electronic devices. By researching and implementing new algorithms, the project aims to make it easier and quicker to design circuits that run cooler, faster, and more reliably, bringing the benefits of the latest technology to a broader audience and fostering innovation in numerous tech-driven sectors. ▸ For more details see: https://nlnet.nl/project/nextpnr-large
KiCad — Add RPC API, multichannel designs and schematic variant system to FOSS EDA suite
KiCad is an open source electronics design application (EDA) suite. The program includes schematic capture, printed circuit board (PCB) layout, circuit simulation, 3D viewer, and many other tools to provide the best possible user experience for professional electronics designers while still remaining approachable for new and inexperienced users. It is available for Windows, macOS, and Linux and is released under the GPL3+ license. ▸ For more details see: https://nlnet.nl/project/KiCad-RPC
Py2HWSW — A tool to manage embedded HW/SW project
This project aims to develop an open-source Python framework for managing files, automating project flows of embedded hardware/software codesign projects, and partially generating Verilog hardware components. The framework simplifies the project structure, addresses challenges in Hardware Design Languages like Verilog and VHDL, and automates emulation, simulation, FPGA, and ASIC flows. The proposed Verilog generator offers flexibility, user control and ease of use, producing human-readable code compatible across FPGAs and ASICs. ▸ For more details see: https://nlnet.nl/project/Py2HWSW
f8 —Modern 8-bit instruction set
More details to follow
Klusterlab Wireguard — Implement Wireguard in Verilog on FPGA
WireGuard is a modern data tunneling and encryption protocol for Internet security. Traditional VPN solutions such as OpenVPN and IPSec are outdated, bloated, and have security gaps. While WireGuard in many cases will be a superior alternative, the performance of a software implementation will not always be enough for high-throughput use cases. The project will implement the WireGuard protocol on a cost-effective Artix-7 FPGA, targeting a board supported by open-source tools for Xilinx with four 1Gbps Ethernet ports. The corresponding gateware will be written in the industry-standard Verilog, welcoming everyone to contribute and review our code, helping us make it more secure and widely used. This project promises to deliver a working prototype of WireGuard in hardware in complete alignment with the spirit of the open-source movement. ▸ For more details see: https://nlnet.nl/project/KlusterLab-Wireguard
WireGuard on FPGA —FPGA implementation of wireguard protocol written in SpinalHDL
More details to follow
UberDDR3 — Open Hardware DDR3 memory controller
UberDDR3 is set to transform the landscape of open-source technology as this will be above and beyond any previous opensourced DDR3 controller gatewares. This aims to unlock the full potential of DDR3 memory, aligning with the latest technological needs. We are dedicated to enhancing compatibility across diverse memory types and reaching higher speed. By integrating innovative features such as on-the-fly configuration, thermal management, ECC integration, and self-refresh mode, our goal is to elevate this open-source gateware to rival the performance of proprietary DDR3 controllers. This endeavor will empower the open-source community, ensuring that dependence on proprietary DDR3 controllers becomes a thing of the past, and setting a new benchmark for open-source hardware capabilities. ▸ For more details see: https://nlnet.nl/project/UberDDR3
ARMify — Auto-Identification of MCU Models to Simplify ARM Bare-Metal Reverse Engineering
ARMify aims to become a plugin for the open-source reverse engineering tool Ghidra, with its primary goal being to assist security analysts in analyzing ARM Cortex-M bare-metal firmware. This is achieved through automatic microcontroller model identification and annotation of memory-mapped peripherals. It helps analysts to understand how the firmware interacts with microcontroller features, offering significant time savings compared to manual cross-referencing with the microcontroller datasheet. The development entails creating an SVD parser (the SVD standard formalizes Cortex-M microcontroller system details, such as peripheral registers, in XML format) and a comprehensive microcontroller database, both of which will be released as standalone tools alongside ARMify. The SVD parser will enable the processing and preparation of Cortex-M microcontroller system details, while the microcontroller database will provide a repository of technical characteristics and a user-friendly interface for easy access. ▸ For more details see: https://nlnet.nl/project/ARMify
DUT Control —Unified Control Interface for Firmware Security Tests
More details to follow
PTP gateware with openXC7 — PTP on FPGA timing cards and SDR cards with openXC7
This project develops open-source gateware for the Precision Time Protocol (PTP), which is essential for accurate timekeeping across servers. Implementing this technology on Xilinx ZYNQ FPGA chips, it offers a secure, reliable alternative to proprietary gateware, reducing the risk of undetected security breaches through server backdoors. This initiative not only enhances Internet security but also enables diverse applications, from 5G networks to research instruments like particle accelerators, making advanced time synchronization accessible, and safeguarding the digital ecosystem for the general public. ▸ For more details see: https://nlnet.nl/project/PTP-timingcard-gateware
Apicula IO primitives — Add additional IO primitives to libre Gowin FPGA tools
Apicula is a project that aims to provide open source tools to work with Gowin FPGAs. (FPGAs are repurposable chips used in many everyday and specialist electronic products for everything from tying systems together to highly specialized algorithm accelerators). In recent years open source FPGA tools have made great strides to break the vendor lock-in of commercial FPGA tools. But to completely break vendor lock-in a variety of mature toolchains are needed. We have reached a point of general usability, and with this grant Apicula aims to make another large leap forward, improving feature parity, documentation, and support for more advanced and specialized Gowin devices. ▸ For more details see: https://nlnet.nl/project/Apicula-IOprimitives
uFork/FPGA — A memory-safe pure-actor processor soft-core
uFork is a novel microprocessor architecture based on dispatching immutable asynchronous message-events to reactive objects (actors) which manage private mutable state. Contention for shared mutable storage is eliminated, reducing complexity. Strong process and memory isolation prevents interference among tasks. Object-capability security (ocaps) provides fine-grained access control. The architecture has been validated by implementing a virtual-machine in software. This project will implement the design using FPGA hardware fully supported by open-source tooling. ▸ For more details see: https://nlnet.nl/project/uFork-FPGA
FastWave — Modern waveform VCD parser
Whilst the fields of open-source hardware design tooling (including synthesizers and layout tools, and open-source digital logic/VLSI gateware) have recently experienced a significant renaissance, simulation visualization tools have not enjoyed similar advancements. This is noteworthy given that verification comprises approximately 80% of the digital logic development cycle. Efficient visualization and debugging of SOC simulations are thus becoming ever more critical. Fastwave, currently developed as a VCD (Value Change Dump) parser in Rust, along with its visualization frontend, Surfer, aims to address this gap. Future iterations of Fastwave will enable advanced visualization of simulation states through custom user plugins. Potential applications include, but are not limited to, visualizing CPU pipeline states with pipeline diagrams or representing mesh network activity by simply loading a VCD file. Plans for expanding the Fastwave suite include features like tracing signals to their source, allowing users to pinpoint the HDL conditions that prompted changes in simulation signal states. Ultimately, Fastwave intends to reduce the workload for digital logic designers by enabling them to align the tool's visual outputs with the mental models they already have of their hardware systems. ▸ For more details see: https://nlnet.nl/project/FastWave

Network infrastructure incl. routing, P2P and VPN

Klusterlab Wireguard — Implement Wireguard in Verilog on FPGA
WireGuard is a modern data tunneling and encryption protocol for Internet security. Traditional VPN solutions such as OpenVPN and IPSec are outdated, bloated, and have security gaps. While WireGuard in many cases will be a superior alternative, the performance of a software implementation will not always be enough for high-throughput use cases. The project will implement the WireGuard protocol on a cost-effective Artix-7 FPGA, targeting a board supported by open-source tools for Xilinx with four 1Gbps Ethernet ports. The corresponding gateware will be written in the industry-standard Verilog, welcoming everyone to contribute and review our code, helping us make it more secure and widely used. This project promises to deliver a working prototype of WireGuard in hardware in complete alignment with the spirit of the open-source movement. ▸ For more details see: https://nlnet.nl/project/KlusterLab-Wireguard
WireGuard on FPGA —FPGA implementation of wireguard protocol written in SpinalHDL
More details to follow
IPv6-monostack — Commoditizing NAT64 and IP/ICMP translation to accelerate IPv6 deployment
NAT64/SIIT technology is critical in enabling networks to transition away from the legacy internet protocol IPv4, yet this network function is currently expensive and hard to deploy, seriously hampering adoption. We believe we can remedy this situation by getting this translation technology accepted into the upstream Linux kernel thus paving the way to rapid and widespread adoption, accelerating IPv6 adoption overall. ▸ For more details see: https://nlnet.nl/project/IPv6-monostack
TSCH-rs —Time Slotted Channel Hopping implement in Rust
More details to follow
Holo Routing — A novel routing stack in Rust, including IS-IS routing
Holo is a suite of routing protocols designed to address the needs of modern networks. Holo was started in response to the increasing trend in the networking field towards automation, where network devices are expected to be managed programatically using a variety of standard interfaces. Written in Rust, a memory-safe language, Holo prioritizes reliability, ease of maintenance, and security. This project aims to extend Holo by incorporating support for the IS-IS protocol, one of the most widely used interior routing protocols. The IS-IS implementation will encompass both IPv4 and IPv6 support, cryptographic authentication, and extensions for traffic engineering. Rigorous testing against multiple vendors and comprehensive conformance tests will ensure the interoperability and robustness of the implementation. ▸ For more details see: https://nlnet.nl/project/HoloRouting

Software engineering, protocols, interoperability, cryptography, algorithms, proofs

ReOxide — Improving Rust Decompilation
Modern compiled languages such as Rust and Go are notorious for producing binaries that are difficult to reverse engineer by default. As these languages grow in popularity, they are increasingly being used in proprietary products and are also attracting malware developers. In order to audit binary software and analyze malware, it is therefore necessary to improve reverse engineering tools with special support for specific languages. To fill this gap, we are developing the ReOxide framework, which targets the reverse engineering of Rust programs. In the presence of extensive compile-time code generation and strong memory optimizations, existing decompilers reach their limits when trying to recreate C-like languages. The design goal of ReOxide is therefore to build on top of the Ghidra decompiler and make it extensible for custom analysis passes. This will allow us to gather information that is readily available during decompilation itself, but not through Ghidra's public plugin API. We will use this information to address Rust specific language features, but also try to keep the extensions general enough for other languages. ▸ For more details see: https://nlnet.nl/project/ReOxide
vm-builder — Virtual Machine Build, Life Cycle and Integration in monolithic and microkernel platforms
As each piece of software is built using other software, it is difficult to ensure that a program is not accidentally infected through malicious code interfering anywhere in this process. An important defence is reducing the amount of code one relies upon and strictly isolating the build from any other processes that could influence it, typically by using a virtual machine. However, the are currently no minimal, portable and final virtual machine build systems which enable effective bootstrapping of operating systems. Delegating this task to container build systems is insufficient, since they are primarily available to the Linux kernel and provide weak isolation properties. Delivering those with a high portability and even (or especially) on low TCB microkernels is key to secure bootstrapping of operating systems and applications on (to be) trusted infrastructure. The current prototype has proven successfully applicable to nowadays general purpose OSs, templating/inheritance and reproducible builds are to be implemented. An implementation in a more robust programming language like Rust is still lacking and will be completed in the course of this project. The long term goal is to easily build and provide legacy platforms and software especially on microkernels — allowing for a migration path towards operating systems with effectively manageable complexity. ▸ For more details see: https://nlnet.nl/project/vm-builder
Whippet — A new local maximum in safe, managed memory
Whippet is a new automatic memory manager (garbage collector) which is designed to be incorporated into the Guile Scheme programming language implementation. Switching to Whippet should improve the speed and scalability of Guix and other Guile-based software while also lowering total system memory usage. This project aims to push Whippet over the finish line, filling in missing functionality and doing the last-mile work to incorporate Whippet into Guile. The anticipated results should also give confidence to other language run-times looking for a state-of-the-art, embeddable, minimal, no-dependency garbage collector. ▸ For more details see: https://nlnet.nl/project/Whippet
XMPP Interoperability and Protocol Standard Conformance Testing —Development of an XMPP Test Suite
XMPP is the Extensible Messaging and Presence Protocol. XMPP offers an open, extensible, standardised and mature set of open technologies designed for decentralised communication. With its flexible design and rich history, its utilisation is widespread. To advance interoperability in its diverse ecosystem of developers and implementations of server software, this project will create an implementation-agnostic test suite for XMPP servers, testing for conformance with the XMPP protocol standards. The suite will be designed to be integrated with various third-party CI components to minimise the complexity of including the suite in development processes of the various and varied parties that are developing XMPP server implementations. For more details see: https://nlnet.nl/project/XMPP-interop-conformance
Catalogs in MariaDB — Enable true multi-tenacy in the MariaDB database
MariaDB Server is the open source database powering most of the internet. Many deployments of MariaDB are done as part of a shared hosting solution, where the underlying hardware is shared by many different tenants. To achieve scalability, hosting providers typically start a single MariaDB Server instance and impose artificial limitations to tenants, such as disallowing any new user creation, modifications, passwords, access control changes etc. The alternative of starting up dedicated database servers incurs a significant resource overhead, limiting the number of total tenants and implies wasted energy and compute power. Catalogs is a feature built for MariaDB Server to eliminate the need for artificial restrictions, all while maintaining high scalability and user density. Catalogs introduce an extra separation on the SQL layer, allowing a user experience that is almost 100% identical to running a dedicated MariaDB Server instance, without the overhead of starting up multiple servers. With catalogs, hosting providers will be able to optimize hardware usage while their users will be able to modify their own dedicated system tables, without impacting other tenants. ▸ For more details see: https://nlnet.nl/project/MariaDB-catalogs
RADIUSdesk Multi WAN — Add Multiwan to RADIUSdesk
RADIUSdesk is a complete, open source solution for the provision and management of Internet connectivity. The main component is a feature-rich RADIUS server that includes features such as vouchers, BYOD and permanent users. Permanent users have support for Private PSKs and versatile Fair Usage Policies (FUP). MESHdesk allows you to quickly roll out WLAN connectivity over a large area. APdesk can be deployed in enterprise environments and offers support for guest networks and dynamic VLAN assignment. Bandwidth and data usage can be managed via one of the following options: a captive portal, a PPPeE server or private PSKs with RADIUS. MESHdesk and APdesk can be managed via your phone or a desktop browser. The system has an intuitive API that eases integration with other systems. In this project, Multiwan support will be added, together with private Pre-Shared Key (PPSK), Multi-Dwelling Units (MDUs) and Software-defined Wide Area Network capabilities which will allow to support more VPN technologies. ▸ For more details see: https://nlnet.nl/project/RADIUSdesk-Multiwan

Operating Systems, firmware and virtualisation

Converged Security Suite +AMD — Add AMD support to Converged Security Suite
The Converged Security Suite has been developed as an open-source tool to provision and test systems where proprietary (and closed) Firmware Security Technologies - such as Intel "Trusted Execution Environment", Intel "BootGuard", and Intel "Converged BootGuard and TXT" (CBnT) - are enabled. Since this is a security-critical operation, transparent open-source tooling is needed to securely provision and test the configuration of your system within the limitations of a closed system. The CSS made huge progress provisioning and testing Intel-based security mechanisms, and within this project we extend this to AMD's Platform Secure Boot, AMD's Secure Memory Encryption and AMD's Secure Encrypted Virtualization. The goal is to provide a test suite for those security mechanism in order to understand how they are configured and provide transparency into those features. ▸ For more details see: https://nlnet.nl/project/CSS-AMD
bcachefs — Next generation file system
bcachefs aims to be a next generation Linux filesystem, with a fully modern featureset and vastly improved performance, scalability and reliability as compared to other next generation filesystems. Additionally, we aim to improve upon the state of the art in a number of areas such as extensibility, which will aid in development in other areas that have historically had to reinvent technology that already exists in local filesystems (distributed systems), repairability (online check and repair, self healing), and ease and correctness of development with the use of Rust. ▸ For more details see: https://nlnet.nl/project/bcachefs
KDE Plasma Wayland — Accessibility and advanced graphics input support for KDE Plasma Wayland
Plasma is the desktop provided by the KDE project, one of the largest and most successful open source initiatives in the world. Wayland is the successor of X11 for Unix desktops and the future for many reasons, including security and privacy. However there are some user groups that currently do not have their requirements satisfied. Some people have motor impairments of their arms/hands (such as restricted movement, tremors, or missing fingers) that make it hard or impossible to operate a traditional computer keyboard. Operating systems provide a number of options like sticky keys, slow keys, or bounce keys to accommodate for such disabilities. Another pain point is configuration of graphics tablet input devices. This includes things like mapping the tablet area to an output area, binding tablet/stylus buttons to actions, or configuring pen pressure curves. This proposal will implement support for these special user groups in KDE Plasma on Wayland. ▸ For more details see: https://nlnet.nl/project/KDEPlasma-Wayland
libnix — Native Nix on MS Windows
The libnix project improves the Windows support of the Nix package manager, by making nix and nix-build work natively on the Windows platform. By creating a ‘libnix’ on top of this, it will allow package managers like node, cargo, pip, and vcpkg to use Nix for building their dependencies. The effort helps bring declarative, reliable packaging systems to a wider audience. ▸ For more details see: https://nlnet.nl/project/libnix
Proper Webcam support in Qemu — Better virtualisation of camera interfaces
QEMU is one of the most popular open source machine emulators and virtualizers. It supports a wide range of architectures and is capable of emulating many types of hardware devices. Many people rely on QEMU to run alternative operating systems or even as a secure development environment. Sometimes it is necessary to pass camera devices to the QEMU guest and make them available to the system. While it is possible to pass cameras using the generic QEMU USB host emulator, this only works with USB cameras and only makes them available to that single QEMU guest. However, many modern systems move away from USB cameras and provide other interfaces for the camera, and thus cannot be passed through. Our solution is to use the operating system's video API instead to make the video device available. We will focus on providing proper support for the Video4Linux API to emulate a USB video device so that it works with the already existing OS drivers. With proper integration of a camera subsystem, this opens the door to supporting more camera APIs and even extending paravirtualized VirtIO devices in the future to improve video quality for next generation video devices. ▸ For more details see: https://nlnet.nl/project/Qemu-Camera

Middleware + identity, including DNS, authorisation, authentication, distribution/deployment, operations, reputation systems

django-allauth — Versatile authentication for Django
The goal of django-allauth is to offer a free, secure, well integrated, reusable authentication solution for the Django framework, covering all functionality related to local and social user accounts, multi-factor authentication, in various configurations, with flows that just work. By simpliyfing the complexities associated with user authentication, django-allauth empowers Django developers of all kinds to focus on building their web applications without compromising on the authentication features provided to their end users. ▸ For more details see: https://nlnet.nl/project/django-allauth

Data and AI

Manas — Rust modules for Solid clients and servers
Manas project aims to make Solid ubiquitous by creating an ecosystem with well-tested, reusable components in rust and js, with which one can assemble customized, feature rich Solid storage servers, clients, and applications, and digital-commons with data-sovereignty collaboration at the core. Using rust, the servers could be run on low resource raspberry-pies to low latency serverless clouds, or as lightweight developer test servers. Can use custom storages from filesystem, object-stores, or consumer cloud storages like google-drive as backends. Support for WAC, ACP authorization systems, Solid-OIDC, HTTPSig authentication schemes, multi pod management, solid-notifications, etc will be provided as reusable layers. And the layered architecture enables adding customized validation, or any other custom features. For clients, a rust client, and other helper crates will be developed for Solid protocol, Solid-notifications, etc, with probable bindings to other languages, that enables small CLIs, and other server-side/client side applications. For the applications, a reusable crate will be created to package them as native applications using tauri, and Manas. This could make Solid an attractive storage api to code web & native apps with a single code base. It can be extended to offer sync solutions, native-first apps, etc in future. ▸ For more details see: https://nlnet.nl/project/Manas
JSON-Joy Peritext — Rich-text CRDT implementations for json-joy CRDT
json-joy is an open source library for building distributed collaborative web applications, its major focus is on implementing performant state-of-the-art CRDT algorithms. This project aims to implement a Peritext-like rich-text CRDT on top of the JSON CRDT Specification as part of the json-joy library. The goal of the project is to implement a production-ready collaborative rich-text editing algorithm, Peritext, and supporting modules for the json-joy library. The project will also improve on the originally proposed Peritext algorithm by leveraging JSON CRDT data structures to make various rich-text annotations mutable and block elements nestable. ▸ For more details see: https://nlnet.nl/project/JSON-Joy-Peritext
StreetComplete/AllThePlaces —Ingest data from AllThePlaces into StreetCompleteMore details to follow
Open Web Calendar Stack — Aggregate public and private web calendars
The Open Web Calendar stack is an open-source set of Python libraries and programs which read and write calendars based on the iCalendar standard. The Open Web Calendar displays a highly configurable website that can be embedded to show a calendar. Currently, ICS URLs are supported and a goal is to also support CalDAV. Amongst the used libraries is the popular icalendar library to parse and write iCalendar (RFC5545) information. This cornerstone of Python's ecosystem requires some work to be up-to-date with common practice such as updating the timezone implementation. The updates to the icalendar library will be tested and also pushed up the stack to the Open Web Calendar. The recurrence calculation of events is done by the python-recurring-ical-events library. Changes to icalendar will be tested against this library to find compatibility issues. As the iCalendar standard has been updated, recurrence calculation is affected, too. These updates need to be evaluated and possibly implemented for both icalendar and the recurrence calculation. By implementing changes at the base, the whole stack is improved. We can use the Open Web Calendar project to make sure that possible transitions and updates are mapped out and communicated to other projects in the ecosystem. Improving a FOSS solution thus spreads the accessibility of iCalendar. ▸ For more details see: https://nlnet.nl/project/OpenWebCalendar
Vouivre — A dependent type system for machine learning in Lisp
Current machine learning frameworks are built around relatively weak type systems. This is a problem because, at scale, machine learning applications are exceedingly intricate and computationally expensive, therefore making costly runtime errors unavoidable. This is where Vouivre comes into play. Using a dependent-type system, the project aims at enabling users to write machine-learning applications that solve real-world problems with compile-time validation of their correctness, thus preventing runtime errors at a reasonable computational cost. ▸ For more details see: https://nlnet.nl/project/Vouivre

Services + Applications

Fidus Writer — Real-time collaborative web-based online editor for academia
Fidus Writer is an open-source online editor that enables real-time collaboration among academic researchers. It supports exporting individual documents to various standard formats, but it lacks the ability to import and export document collections (books) to some of the most widely used formats, such as DOCX, ODT and JATS XML. This project aims to enhance the functionality and usability of Fidus Writer by including track changes on the collaborative editor (a sought after feature for many more official use cases), adding import and export filters for books, as well as a generic pandoc filter for documents , using the existing code base and infrastructure. This will allow Fidus Writer to reach a broader audience and increase its adoption in the academic community. ▸ For more details see: https://nlnet.nl/project/FidusWriter
Open Web Calendar Stack — Aggregate public and private web calendars
The Open Web Calendar stack is an open-source set of Python libraries and programs which read and write calendars based on the iCalendar standard. The Open Web Calendar displays a highly configurable website that can be embedded to show a calendar. Currently, ICS URLs are supported and a goal is to also support CalDAV. Amongst the used libraries is the popular icalendar library to parse and write iCalendar (RFC5545) information. This cornerstone of Python's ecosystem requires some work to be up-to-date with common practice such as updating the timezone implementation. The updates to the icalendar library will be tested and also pushed up the stack to the Open Web Calendar. The recurrence calculation of events is done by the python-recurring-ical-events library. Changes to icalendar will be tested against this library to find compatibility issues. As the iCalendar standard has been updated, recurrence calculation is affected, too. These updates need to be evaluated and possibly implemented for both icalendar and the recurrence calculation. By implementing changes at the base, the whole stack is improved. We can use the Open Web Calendar project to make sure that possible transitions and updates are mapped out and communicated to other projects in the ecosystem. Improving a FOSS solution thus spreads the accessibility of iCalendar. ▸ For more details see: https://nlnet.nl/project/OpenWebCalendar
Tau — Remote sharing of terminal sessions
A common problem among people working on a command-line interface is to share their terminal session with one or many other people via the internet, ideally along with an audio stream, without viewers having to install any specific software. This project creates a solution that enables anyone with a web browser to receive such a broadcast. Unlike generic screensharing alternatives, a broadcast created by .tau will not be a stream of compressed video but rather a stream of ASCII characters with preserved timing as well as a terminal look & feel, and giving the ability to easily copy text. The broadcaster will have a nice and easy experience installing a piece of software which accomplishes this. Upon completing a broadcast, a single resultant file is available for later viewing on the internet and or private distribution. Simple, portable and robust. ▸ For more details see: https://nlnet.nl/project/Tau
Lemmy Scale —ActivityPub-powered social link aggregation and discussion
More details to follow
Monal IM UI — Modern UI for XMPP on iOS and macOS
Monal is an open source XMPP instant messaging client for MacOS and iOS which strives to be the go-to client for these platforms just like the app Conversations is for Android. Like other messaging apps on iOS and macOS Monal must deal with the limitations of these platforms. Yet, Monal is able to fully support push messages even for encrypted groupchats without resorting to non-XSF- standardized extensions to the long-lasting XMPP protocol. Since Monal has a quite mature and stable XMPP backend now, the focus is shifting to rewriting the UI of Monal. And all this while adding new features, such as voice and video calls, which have only recently been added. In this project, Monal will receive a new chat UI that provides better UX and is way more maintainable for the developers. Additionally, the audio call functionality previously funded by NLNet, will be extended by a dialpad. This will allow calls to mobile and landlines via appropriated XMPP-VoIP-bridges like jmp.chat. To speed up connection establishment support for Bind2 and FAST will be implemented. This will result in better UX, especially for users on mobile connections with low bandwidth and high latency. ▸ For more details see: https://nlnet.nl/project/Monal-IM-UI
Native IFC for FreeCAD — ISO-compliant Building Information Modeling in FreeCAD
IFC, or Industry Foundation Classes, is finally providing a true, gold, open, universal data format for BIM (Building Information Modeling), the CAD paradigm nowadays widely adopted by the architecture, civil engineering and construction (AEC) industry. The IFC format is open-source, maintained by a consortium, open and text-based, and also an ISO standard. FreeCAD, a popular open-source 3D modeling application, has been supporting the IFC format for years already. This project goes one step further, and turns IFC a default file format of FreeCAD. Without the translation layer needed to import and export IFC files, FreeCAD becomes a true, native IFC editor, with a wealth of advantages, such as having minimal, identifiable and version-control-friendly change sets, access to just any piece of IFC data, etc. ▸ For more details see: https://nlnet.nl/project/FreeCAD-IFC
/kbin —Mobile app and feature additions to /kbin
More details to follow

Vertical use cases, Search, Community

Stract — Explorative search engine
Search has become an intrinsic part of the way we explore the web. Sadly as of late, most of the current search engines fail to live up to this responsibility. Stract is a fully open source, independent and user-centric search engine for the web. In short, our goal is to do web search right. The funding from NLnet will be used to improve the performance of our index, improve the performance of our web graph, adding a live index for news articles and blog posts and finally improving our currently insufficient documentation. ▸ For more details see: https://nlnet.nl/project/Stract
Agorakit — Groupware which is a friendly online home to communities
Agorakit is a web-based, open source organization tool for collectives. By creating collaborative groups, people can discuss topics, organize events, store files and keep everyone updated as needed. The tool is very easy to use, participants only need to register with an email, the very low barrier of entry and easy to use user interface make it an ideal tool for heterogeneous groups with people of broadly different backgrounds and skills. Those seem like simple features, but to have access to all those in the same product without friction is in our very humble opinion unique to Agorakit. The scope of this project is to enhance documentation, ease use and installation, and allow external communication (including federation). ▸ For more details see: https://nlnet.nl/project/Agorakit


Still hungry for more projects? Check out the overview of all our current and recent projects...

Logo NGI Zero: letterlogo shaped like a tag
Logo European Commission