Major version 2.0.0 published

Written for rohc by Didier Barvaux on 2016-08-27

The major version 2.0.0 of the ROHC library was just released.

This release is quite large:
* it is the result of 2 years of work,
* more than 50 KLOC were modified,
* a third of the changes were related to the TCP profile,
* 66 problems were detected (and fixed) with AFL fuzzing (58 for the TCP profile alone),
* 47 warnings were detected (and fixed) by static analysis (Coverity Scan).

== About the ROHC library ==

The ROHC library provides an easy and robust way for applications to reduce their bandwidth usage on network links with limited capacity or expensive costs. Headers of network packets are compressed with the ROHC protocol and algorithms.

The ROHC protocol is very efficient for compressing VoIP streams that use RTP as transport protocol. ROHC is also suitable for compressing IP-only (IPv4 or IPv6) flows, UDP flows and many others.

The library is published as Opensource under the license GNU LGPL version 2.1 or later.

See https://rohc-lib.org/ and https://rohc-lib.org/presentation/rohc-protocol/ for more details.

== Release notes & changelogs ==

The 2.0.0 release:
* makes the TCP profile more compliant and robust (TCP profile is now ready for production),
* makes the library more robust in general (with the help of AFL fuzzer and public PCAP captures),
* removes the compatibility with the old deprecated public API,
* adds a Python binding,
* improves Linux kernel support,
* improves CPU performances.

There are also many many bugs fixes (34 are listed in the bugtracker, but many more were fixed, especially on the TCP profile). See the release notes and the changelog [1] for more details.

[1] changelog: https://github.com/didier-barvaux/rohc/blob/rohc-2.0.0/ChangeLog

== Compatibility with previous releases ==

The 2.0.0 release might not be compatible with previous 1.y.x releases for the ROHC protocol. Mixing major versions for compressor and decompressor is not recommended. This is especially true for the TCP profile that was largely reworked.

There is also an library API breakage. The 1.7.x releases introduced a new API and deprecated the old one. The old API is now gone: * If your application builds with the latest 1.7.x release without raising any deprecation warnings, upgrading to 2.0.0 is possible without additional work.
* If your application still use some functions deprecated in the 1.7.x releases, ensure to fix them
   before upgrading. See the migration guide [2] for hints.
* If you still use the very old 1.6.x releases, consider using the latest 1.7.x release as an
   intermediate step before upgrading to 2.0.0. See the migration guide [2] for hints.

[2] migration guide: https://rohc-lib.org/wiki/doku.php?id=library-migration

== Acknowledgements ==

Many thanks to people that reported/fixed bugs:
* Klaus Warnke for his bug reports and fixes on the TCP profile,
* Steven Brown for his fix that reduces librohc.so size,
* Simon Paillard for small fixes on documentation and copyright,
* Jozsef Dudas,
* Mohammad Abyan Abdullah.

== Download ==

The source archive is available for download [3]. A sha256 checksum and a GPG signature are provided, be sure to check them [4].

[3] download files: https://rohc-lib.org/support/download/#supported-releases
[4] check files: https://rohc-lib.org/support/download/#verify-downloaded-files

== Installation instructions & API documentation ==

The instructions to install the library and use it are available [5]. The API documentation is available in HTML [6] and man pages [7].

[5] Tutorial: https://rohc-lib.org/presentation/getting-started/
[6] API documentation (HTML): https://rohc-lib.org/support/documentation/API/rohc-doc-2.0.0/
[7] API documentation (man): https://rohc-lib.org/support/documentation/API/rohc-man-2.0.0/

== Feedback ==

Any feedback on the 2.0.0 release will be appreciated. You may use the mailing list to ask questions [8] and the bug tracker to report problems [9].

[8] mailing list: https://rohc-lib.org/support/mailing-list/
[9] bug tracker: https://rohc-lib.org/developer/bugtracker/

Read all announcements