Announcing the release of libRIST library v0.2.11, bringing significant enhancements and critical bug fixes.
Explore the latest updates: libRIST Repository.
Library History
- The libRIST open-source library originated from Sergio Ammirata’s proprietary UDP packet recovery library, code-named Dozer.
- The library’s first version was created in 2014 following the approval of a patent for this innovative technology.
- Initially part of a commercial product line, it was deployed thousands of times between 2014 and 2019.
- Sergio received a Technical Emmy Award in 2018 for the use of this technology.
- In 2018, the VSF working group defined the RIST (Reliable Internet Stream Transport) protocol as an interoperable standard for UDP transmission with packet recovery.
- Sergio joined the VSF working group in 2018, becoming a key contributor to the creation and evolution of the RIST standard. He remains actively involved in enhancing related specifications. In 2019, the proprietary library was adapted to conform to the RIST specification and published in the Videolan source code repository under the name libRIST. It was released under the BSD2 open-source license to encourage widespread adoption.
- From 2019 to today, libRIST has been maintained and expanded by Sergio Ammirata and his company SipRadius, achieving compatibility with all major architectures and operating systems.
- libRIST is now a foundational technology, integrated into widely used multimedia projects such as VLC and FFmpeg, collectively reaching over a billion users.
Availability
Major Distributions:
- Homebrew
- Archlinux
- Alpinelinux
- Ubuntu (22.10 onwards)
- Fedora
- Debian
- Gentoo
- Suse
- FreeBSD
Supported Operating Systems:
- Windows
- Mac
- Linux
- Android
- iOS
Cross-Compiled Architectures:
- aarch64
- amd64
- armv6
- armv7
- i386
- powerpc
- powerpc64
- powerpc64le
Built-in Support:
- VLC 4.x
- FFMPEG
- TSDuck
Release Notes: libRIST v0.2.11
Enhancements
- Added support for ephemeral listening ports, enabling dynamic addition/removal of ports for new connections post-initialisation.
- Introduced a sender function rist_sender_npd_get to retrieve the current status of null_packet_deletion in client code.
- Added rist_peer_get_cname function to extract the private CNAME property of a peer.
- Enhanced the CI test application with additional tests and packet integrity checks.
Bug Fixes
- Resolved potential socket deadlock conditions on MS Windows.
- Addressed confusion caused by multicast addresses sharing the same destination port in ristsender.
- Cleaned up various compile warnings across different C++ versions.
- Fixed theoretical issues with IP checksum calculation.
- Updated to the latest meson version to prevent reliance on deprecated features.
- Corrected a typo in ristsender logging.
- Ensured correct type usage for the timing_mode field in peer configuration.
- Fixed a deadlock when tun://@ is used in the output URL for ristreceiver.
- Handled invalid verbose-level parameters.
- Ensured proper binding to raw UDP sockets.
- Corrected memory allocation parameter order for stats reporting.
- Resolved issues in the Mac Homebrew ARM64 build.
- Fixed null packet deletion and improper units in sender Prometheus stats.
- Addressed data corruption in keepalive packets.
- Fixed incorrect RTP/RTCP classification affecting ST2110.
- Ensured flow timeout behaviour aligns with session timeout settings.
Acknowledgements
Special thanks to Thierry Lelegard for his contributions to fixing the null packet deletion bug.