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