We’ve had a busy June, with much more to do on our current work for NGI Zero Core.
Our community was also very hard at work packaging our updates for librecast.
At the start of June we made the first public release of lcagent.
lcagent is our multicast agent. It can be used like a multicast netcat/socat. You can read more in this announcement email.
The source is available from our mirrors.
Available on Codeberg:
https://codeberg.org/librecast/lcagent
Sourcehut:
https://git.sr.ht/~librecast/lcagent
We’ve been using this tool internally to control CI builds and launch processes since July 2024. As part of NGI0 Core we added capability token support and tidied up the code and documentation for a public release.
Also in June we rebuilt our Librecast CI system using the newly released lcagent program, automating VM creation and CI builds. When committing to a branch, a git hook automatically triggers to generate a patch and multicast it via lcagent to all the test nodes. The test results are reported back and stored in a sqlite database for later analysis. As we add more complex tests and timing data to this mix we’ll be able to more easily see the effects of code changes on performance across the different platforms we support and keep an eye out for regressions.
A new release of Librecast was prepared and published on the 18th of June.
You can read more about the latest version of librecast here.
Work on testing lcsync and the Librecast Sync API is ongoing. Currently we are designing a fastpath option for syncing whole files to bypass much of the MLD latency when pulling down larger files. We will revisit the sync API over the coming months as we work on the overlay.
At the Librecast Project we are long time users of Debian and Debian distributions so every time a new release comes out we look forward to seeing our new packages hit the distributions. We also love seeing the various architectures that librecast is built against thanks to Vagrant Cascadian of Reproducible Builds.
While the Trixie freeze is in place librecast v 0.9.1-1 is available.
https://buildd.debian.org/status/package.php?p=librecast&suite=trixie
If you wish to install the latest version of librecast 0.11.2-1 then you will need to install from the experimental repository.
https://buildd.debian.org/status/package.php?p=librecast&suite=experimental
librecast 0.11.2 was built and added on June 18th by Vagrant Cascadian.
https://codeberg.org/guix/guix/pulls/665
Vagrant has also packaged lcagent. This was added to Guix on June 19th and published by Guix on June 27th.
https://codeberg.org/guix/guix/commit/04f4345a5be6f72cfd454cc73924003be04b9767
Our Nix Packagers Prepared librecast v 0.11.2, lcrq v 0.2.4 and lcsync v 0.3.2 for Nix Unstable.
Nix Stable (25.05) has librecast v 0.10.0, lcrq v 0.2.3 and lcsync v 0.3.2.
Our thanks go to Jason Odoom, Jack Leightcap, Dominic Mills, Anish Lakhwara and Albert Chae for keeping Librecast up to date for Nix.
NixOS is part of the NGI Zero Coalition so this work is very important to the Librecast Project as we are funded by NGI Zero.
Rust bindings were created for librecast and lcrq by Gavin Henry. Gavin has kindly made the bindings available from Codeberg.
The larger task of optimizing the Librecast Sync API needs some time dedicated to it in the larger context of measuring and optimizing the Librecast Multicast Overlay. As we work on the Overlay, there will be changes to Sync that will likely become apparent.
The overlay requires:
We know how to perform node discovery through several means. Our work in July will focus on establishing the point to point links we need using WebSockets and WebRTC.
You can read more about our plans for 2025 in our 2025 Strategic Plan
Librecast has been accepted into the NGI Zero Commons fund to continue building Librecast with Librecast Studio.
This is great news for the project, as this means we can continue our work on Librecast through to 2027. As a project, we couldn’t have made it this far without the support of our community. From the people who spend their time packaging us to the folks cheering us on each time we put our a release. Every contribution helps us so we’d like to say thank you.
As part of our application to Zero Commons we published a draft plan for Studio. This is a collection of ideas and is a work in progress. We aim to work with you, our wider community to create the foundations for a space that you create and bring your tools to so we can each collaborate on our own terms.
Our current landscape of remote collaborative tooling is restrictive and one size doesn’t fit all.
With the acceptance into the Zero Commons Fund, our ideas must become more concrete so we spent some time to understand the starting point for this.
We had design discussions for Librecast Studio, and the idea of building what we’re calling The Construct (see: Matrix, 1999) was formed. The Construct is a neutral, virtual space that allows multiple connected parties to collaborate. Each party can bring resources with them (CPU, disk, network, applications) and can use their own local applications to view and process data. Building this, rather than a specific single-purpose application, will be the main product of the NGI Zero Commons work that we do. This relies heavily on the multicast overlay we are working on currently.
If any of this sounds interesting and you’d like to find out more or get involved in some way, get in touch. You don’t have to write code to contribute.