Generic library for real-time communications with async IO support
C
191
2,127 commits
updated Sep 26, 2026
libre is a Generic library for real-time communications with async IO support.
libre is using CMake. CMake and OpenSSL development headers must be installed before building.
$ cmake -B build
$ cmake --build build -j
$ sudo cmake --install build
$ sudo ldconfig
cmake -B build && cmake --build build -t retest -j
build/test/retest -rv
On some distributions, /usr/local/lib may not be included in ld.so.conf.
You can check with grep "/usr/local/lib" /etc/ld.so.conf.d/*.conf
and add if necessary:
$ echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/libc.conf
$ sudo ldconfig
$ cmake -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build -j
$ sudo cmake --install build
$ sudo ldconfig
$ cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
$ cmake --build build -j
$ sudo cmake --install build
$ sudo ldconfig
Coding examples are available from the redemo project.
The libre project is using the BSD license.
Patches can sent via Github Pull-Requests
| Name | Status | Description |
|---|---|---|
| aes | stable | AES (Advanced Encryption Standard) |
| async | testing | Async module |
| av1 | testing | AV1 Packetizer |
| base64 | stable | Base-64 encoding/decoding functions |
| bfcp | stable | The Binary Floor Control Protocol (BFCP) |
| btrace | testing | Backtrace module |
| conf | stable | Configuration file parser |
| crc32 | stable | 32-bit CRC defined in ITU V.42 |
| dbg | stable | Debug printing |
| dd | testing | Dependency Descriptor |
| dns | stable | DNS resolving (NAPTR, SRV, A) |
| fmt | stable | Formatted printing and regular expression |
| h264 | testing | H.264 packetizer |
| h265 | testing | H.265 packetizer |
| hash | stable | Hashmap table |
| hmac | stable | HMAC: Keyed-Hashing for Message Authentication |
| http | stable | HTTP parser (RFC 2616) |
| httpauth | stable | HTTP-based Authentication (RFC 2617) |
| ice | stable | Interactive Connectivity Establishment (ICE) |
| json | stable | JavaScript Object Notation (JSON) |
| list | stable | Sortable doubly-linked list handling |
| main | stable | Main poll loop |
| mbuf | stable | Linear memory buffers |
| md5 | stable | The MD5 Message-Digest Algorithm (RFC 1321) |
| mem | stable | Memory referencing |
| mod | stable | Run-time module loading |
| mqueue | stable | Thread-safe message queue |
| msg | stable | Generic message component library |
| net | stable | Networking routines |
| odict | stable | Ordered Dictionary |
| pcp | testing | Port Control Protocol |
| rtmp | stable | Real Time Messaging Protocol |
| rtp | stable | Real-time Transport Protocol |
| rtpext | testing | RTP extensions |
| sa | stable | Socket Address functions |
| sdp | stable | Session Description Protocol |
| sha | stable | Secure Hash Standard, NIST, FIPS PUB 180-1 |
| sip | stable | Core SIP library |
| sipevent | stable | SIP Event framework |
| sipreg | stable | SIP register client |
| sipsess | stable | SIP Sessions |
| srtp | stable | Secure Real-time Transport Protocol (SRTP) |
| stun | stable | Session Traversal Utilities for NAT (STUN) |
| sys | stable | System information |
| tcp | stable | TCP transport |
| telev | stable | Telephony Events (RFC 4733) |
| thread | testing | C11 threads (with pthread and win32 emulation) |
| tls | stable | Transport Layer Security |
| tmr | stable | Timer handling |
| turn | stable | Obtaining Relay Addresses from STUN (TURN) |
| trace | testing | Trace Helpers JSON traces (chrome://tracing) |
| trice | testing | Trickle ICE |
| udp | stable | UDP transport |
| unixsock | testing | Unix domain sockets |
| uri | stable | Generic URI library |
| websock | stable | WebSocket Client and Server |
legend:
| System | Support type | Supported versions | Notes |
|---|---|---|---|
| Linux | Tier 1 | glibc >= 2.31 | |
| Linux | Tier 1 | musl >= 1.2 | |
| macOS | Tier 1 | macOS >= 10.10 | |
| Windows | Tier 1 | >= Windows 10 | MinGW-w64, >= VS 2022 |
| Android | Tier 2 | Android 8 (API Level 26) | |
| iOS | Tier 2 | ||
| FreeBSD | Tier 2 | >= 12 | |
| OpenBSD | Tier 2 | >= 7.4 | |
| Linux | Tier 2 | uClibc |
macOS clang-1600.0.26.3 (Xcode 16.0) and clang-1600.0.26.4 (Xcode 16.1) have a optimization bug:
Tier 1: Officially supported and tested with CI. Any contributed patch MUST NOT break such systems.
Tier 2: Officially supported, but not necessarily tested with CI. These systems are maintained to the best of collaborators ability, without being a top priority.
Tier 3: Community maintained. These systems may inadvertently break and the community and interested parties are expected to help with the maintenance.
| TCP | UDP | TLS | DTLS | |
|---|---|---|---|---|
| BFCP | - | yes | - | - |
| DNS | yes | yes | - | - |
| HTTP | yes | n/a | yes | n/a |
| ICE | - | yes | - | - |
| RTP | - | yes | - | - |
| RTCP | - | yes | - | - |
| RTMP | yes | - | yes | - |
| SIP | yes | yes | yes | - |
| STUN | yes | yes | yes | yes |
| TURN | yes | yes | yes | yes |
| WEBSOCK | yes | n/a | yes | n/a |
137 followers · starred Apr 2026
C
97.7%
C++
1.2%
CMake
1.1%
Generic library for real-time communications with async IO support
C
191
2,127 commits
updated Sep 26, 2026
libre is a Generic library for real-time communications with async IO support.
libre is using CMake. CMake and OpenSSL development headers must be installed before building.
$ cmake -B build
$ cmake --build build -j
$ sudo cmake --install build
$ sudo ldconfig
cmake -B build && cmake --build build -t retest -j
build/test/retest -rv
On some distributions, /usr/local/lib may not be included in ld.so.conf.
You can check with grep "/usr/local/lib" /etc/ld.so.conf.d/*.conf
and add if necessary:
$ echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/libc.conf
$ sudo ldconfig
$ cmake -B build -DCMAKE_BUILD_TYPE=Release
$ cmake --build build -j
$ sudo cmake --install build
$ sudo ldconfig
$ cmake -B build -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
$ cmake --build build -j
$ sudo cmake --install build
$ sudo ldconfig
Coding examples are available from the redemo project.
The libre project is using the BSD license.
Patches can sent via Github Pull-Requests
| Name | Status | Description |
|---|---|---|
| aes | stable | AES (Advanced Encryption Standard) |
| async | testing | Async module |
| av1 | testing | AV1 Packetizer |
| base64 | stable | Base-64 encoding/decoding functions |
| bfcp | stable | The Binary Floor Control Protocol (BFCP) |
| btrace | testing | Backtrace module |
| conf | stable | Configuration file parser |
| crc32 | stable | 32-bit CRC defined in ITU V.42 |
| dbg | stable | Debug printing |
| dd | testing | Dependency Descriptor |
| dns | stable | DNS resolving (NAPTR, SRV, A) |
| fmt | stable | Formatted printing and regular expression |
| h264 | testing | H.264 packetizer |
| h265 | testing | H.265 packetizer |
| hash | stable | Hashmap table |
| hmac | stable | HMAC: Keyed-Hashing for Message Authentication |
| http | stable | HTTP parser (RFC 2616) |
| httpauth | stable | HTTP-based Authentication (RFC 2617) |
| ice | stable | Interactive Connectivity Establishment (ICE) |
| json | stable | JavaScript Object Notation (JSON) |
| list | stable | Sortable doubly-linked list handling |
| main | stable | Main poll loop |
| mbuf | stable | Linear memory buffers |
| md5 | stable | The MD5 Message-Digest Algorithm (RFC 1321) |
| mem | stable | Memory referencing |
| mod | stable | Run-time module loading |
| mqueue | stable | Thread-safe message queue |
| msg | stable | Generic message component library |
| net | stable | Networking routines |
| odict | stable | Ordered Dictionary |
| pcp | testing | Port Control Protocol |
| rtmp | stable | Real Time Messaging Protocol |
| rtp | stable | Real-time Transport Protocol |
| rtpext | testing | RTP extensions |
| sa | stable | Socket Address functions |
| sdp | stable | Session Description Protocol |
| sha | stable | Secure Hash Standard, NIST, FIPS PUB 180-1 |
| sip | stable | Core SIP library |
| sipevent | stable | SIP Event framework |
| sipreg | stable | SIP register client |
| sipsess | stable | SIP Sessions |
| srtp | stable | Secure Real-time Transport Protocol (SRTP) |
| stun | stable | Session Traversal Utilities for NAT (STUN) |
| sys | stable | System information |
| tcp | stable | TCP transport |
| telev | stable | Telephony Events (RFC 4733) |
| thread | testing | C11 threads (with pthread and win32 emulation) |
| tls | stable | Transport Layer Security |
| tmr | stable | Timer handling |
| turn | stable | Obtaining Relay Addresses from STUN (TURN) |
| trace | testing | Trace Helpers JSON traces (chrome://tracing) |
| trice | testing | Trickle ICE |
| udp | stable | UDP transport |
| unixsock | testing | Unix domain sockets |
| uri | stable | Generic URI library |
| websock | stable | WebSocket Client and Server |
legend:
| System | Support type | Supported versions | Notes |
|---|---|---|---|
| Linux | Tier 1 | glibc >= 2.31 | |
| Linux | Tier 1 | musl >= 1.2 | |
| macOS | Tier 1 | macOS >= 10.10 | |
| Windows | Tier 1 | >= Windows 10 | MinGW-w64, >= VS 2022 |
| Android | Tier 2 | Android 8 (API Level 26) | |
| iOS | Tier 2 | ||
| FreeBSD | Tier 2 | >= 12 | |
| OpenBSD | Tier 2 | >= 7.4 | |
| Linux | Tier 2 | uClibc |
macOS clang-1600.0.26.3 (Xcode 16.0) and clang-1600.0.26.4 (Xcode 16.1) have a optimization bug:
Tier 1: Officially supported and tested with CI. Any contributed patch MUST NOT break such systems.
Tier 2: Officially supported, but not necessarily tested with CI. These systems are maintained to the best of collaborators ability, without being a top priority.
Tier 3: Community maintained. These systems may inadvertently break and the community and interested parties are expected to help with the maintenance.
| TCP | UDP | TLS | DTLS | |
|---|---|---|---|---|
| BFCP | - | yes | - | - |
| DNS | yes | yes | - | - |
| HTTP | yes | n/a | yes | n/a |
| ICE | - | yes | - | - |
| RTP | - | yes | - | - |
| RTCP | - | yes | - | - |
| RTMP | yes | - | yes | - |
| SIP | yes | yes | yes | - |
| STUN | yes | yes | yes | yes |
| TURN | yes | yes | yes | yes |
| WEBSOCK | yes | n/a | yes | n/a |
137 followers · starred Apr 2026
C
97.7%
C++
1.2%
CMake
1.1%