1/** 2 3@page newAPI RNAlib API v3.0 4 5@tableofcontents 6 7@section newAPI_intro Introduction 8 9With version 2.2 we introduce the new API that will take over the old one 10in the future version 3.0. By then, backwards compatibility will be broken, and 11third party applications using RNAlib need to be ported. This switch of API became 12necessary, since many new features found their way into the RNAlib where a balance 13between threadsafety and easy-to-use library functions is hard or even impossible 14to establish. Furthermore, many old functions of the library are present as 15slightly modified copies of themself to provide a crude way to overload functions. 16 17Therefore, we introduce the new v3.0 API very early in our development stage 18such that developers have enough time to migrate to the new functions and interfaces. 19We also started to provide encapsulation of the RNAlib functions, data structures, 20typedefs, and macros by prefixing them with @em vrna_ and @em VRNA_ , respectively. 21Header files should also be included using the @em ViennaRNA/ namespace, e.g. 22@code 23#include <ViennaRNA/fold.h> 24@endcode 25instead of just using 26@code 27#include <fold.h> 28@endcode 29as required for RNAlib 1.x and 2.x. 30 31This eases the work for programmers of third party applications that would otherwise 32need to put much effort into renaming functions and data types in their own 33implementations if their names appear in our library. Since we still provide backward 34compatibility up to the last version of RNAlib 2.x, this advantage may be fully 35exploited only starting from v3.0 which will be released in the future. However, our 36plan is to provide the possibility for an early switch-off mechanism of the backward 37compatibility in one of our next releases of ViennaRNA Package 2.x. 38 39@section newAPI_changes What are the major changes? 40... 41 42@section newAPI_porting How to port your program to the new API 43... 44 45@section newAPI_examples Some Examples using RNAlib API v3.0 46 47Examples on how to use the new v3.0 API can be found in the 48@ref ex_c_fc section. 49 50 */ 51