Libre is a portable and generic library for real-time communications with async IO support and a complete SIP stack with support for SDP, RTP/RTCP, STUN/TURN/ICE, BFCP and DNS Client.


  • SIP Stack (RFC 3261)
  • SDP
  • RTP and RTCP
  • SRTP
  • DNS-Client
  • BFCP
  • HTTP-stack with client/server
  • Websockets
  • Jitter-buffer
  • Async I/O (poll, epoll, select)
  • UDP/TCP/TLS/DTLS transport
  • Download

    Latest and previous releases of libre can be downloaded here.


    The development of libre is happening at Github
    $ git clone

    Building and installation

    To build libre we are using GNU Make. External dependencies are automatically detected by the makefile.
    $ cd re
    $ make
    $ sudo make install

    Examples and Demonstration

    A separate redemo package is available in download directory.

    Here you will find examples on how to use the libre toolkit, including demonstations on how to create a basic UDP and TCP server with less than 100 and 200 lines of C-code respectively. Additionally you will find a basic SIP user-agent example. All the demo programs are built by simply typing make from the redemo directory.

    Design Goals

  • Portable POSIX source code (ANSI C89 and ISO C99 standard)
  • Intelligent and user friendly APIs
  • Robust, fast, low memory footprint
  • RFC compliance
  • IPv4 and IPv6 support
  • Documentation

    Doxygen API documentation can be found here.

    Applications using libre

  • restund
  • baresip