gnunet-handbook

The GNUnet Handbook
Log | Files | Refs

stability.rst (7447B)


      1 .. _Subsystem-stability:
      2 
      3 *******************
      4 Subsystem stability
      5 *******************
      6 
      7 This page documents the current stability of the various GNUnet
      8 subsystems. Stability here describes the expected degree of
      9 compatibility with future versions of GNUnet. 
     10 
     11 For each subsystem we distinguish between compatibility on the P2P 
     12 network level (communication protocol between peers), the IPC level 
     13 (communication between the service and the service library) and the 
     14 API level (stability of the API). 
     15 
     16 P2P compatibility is relevant in terms of which applications are likely 
     17 going to be able to communicate with future versions of the network. 
     18 IPC communication is relevant for the implementation of language bindings 
     19 that re-implement the IPC messages. Finally, API compatibility is relevant 
     20 to developers that hope to be able to avoid changes to applications built 
     21 on top of the APIs of the framework.
     22 
     23 The following table summarizes our current view of the stability of the
     24 respective protocols or APIs:
     25 
     26 .. todo:: Make table automatically generated individual pages?
     27 
     28 +-----------------+-----------------+-----------------+-----------------+
     29 | Subsystem       | P2P             | IPC             | C API           |
     30 +=================+=================+=================+=================+
     31 | util            | n/a             | n/a             | stable          |
     32 +-----------------+-----------------+-----------------+-----------------+
     33 | arm             | n/a             | stable          | stable          |
     34 +-----------------+-----------------+-----------------+-----------------+
     35 | block           | n/a             | n/a             | stable          |
     36 +-----------------+-----------------+-----------------+-----------------+
     37 | cadet           | testing         | testing         | testing         |
     38 +-----------------+-----------------+-----------------+-----------------+
     39 | consensus       | experimental    | experimental    | experimental    |
     40 +-----------------+-----------------+-----------------+-----------------+
     41 | core            | unstable        | unstable        | unstable        |
     42 +-----------------+-----------------+-----------------+-----------------+
     43 | datacache       | n/a             | n/a             | unstable        |
     44 +-----------------+-----------------+-----------------+-----------------+
     45 | datastore       | n/a             | unstable        | unstable        |
     46 +-----------------+-----------------+-----------------+-----------------+
     47 | dht             | testing         | testing         | testing         |
     48 +-----------------+-----------------+-----------------+-----------------+
     49 | dns             | stable          | stable          | stable          |
     50 +-----------------+-----------------+-----------------+-----------------+
     51 | dv              | testing         | testing         | n/a             |
     52 +-----------------+-----------------+-----------------+-----------------+
     53 | exit            | testing         | n/a             | n/a             |
     54 +-----------------+-----------------+-----------------+-----------------+
     55 | fragmentation   | stable          | n/a             | stable          |
     56 +-----------------+-----------------+-----------------+-----------------+
     57 | fs              | unstable        | unstable        | unstable        |
     58 +-----------------+-----------------+-----------------+-----------------+
     59 | gns             | stable          | stable          | stable          |
     60 +-----------------+-----------------+-----------------+-----------------+
     61 | hello           | n/a             | n/a             | testing         |
     62 +-----------------+-----------------+-----------------+-----------------+
     63 | hostlist        | unstable        | unstable        | n/a             |
     64 +-----------------+-----------------+-----------------+-----------------+
     65 | identity        | testing         | testing         | n/a             |
     66 +-----------------+-----------------+-----------------+-----------------+
     67 | multicast       | experimental    | experimental    | experimental    |
     68 +-----------------+-----------------+-----------------+-----------------+
     69 | namestore       | n/a             | testing         | testing         |
     70 +-----------------+-----------------+-----------------+-----------------+
     71 | nat             | n/a             | n/a             | unstable        |
     72 +-----------------+-----------------+-----------------+-----------------+
     73 | nse             | stable          | stable          | stable          |
     74 +-----------------+-----------------+-----------------+-----------------+
     75 | pt              | n/a             | n/a             | n/a             |
     76 +-----------------+-----------------+-----------------+-----------------+
     77 | regex           | stable          | stable          | stable          |
     78 +-----------------+-----------------+-----------------+-----------------+
     79 | revocation      | stable          | stable          | stable          |
     80 +-----------------+-----------------+-----------------+-----------------+
     81 | social          | experimental    | experimental    | experimental    |
     82 +-----------------+-----------------+-----------------+-----------------+
     83 | statistics      | n/a             | stable          | stable          |
     84 +-----------------+-----------------+-----------------+-----------------+
     85 | testbed         | n/a             | testing         | testing         |
     86 +-----------------+-----------------+-----------------+-----------------+
     87 | testing         | n/a             | n/a             | testing         |
     88 +-----------------+-----------------+-----------------+-----------------+
     89 | topology        | n/a             | n/a             | n/a             |
     90 +-----------------+-----------------+-----------------+-----------------+
     91 | transport       | experimental    | experimental    | experimental    |
     92 +-----------------+-----------------+-----------------+-----------------+
     93 | tun             | n/a             | n/a             | stable          |
     94 +-----------------+-----------------+-----------------+-----------------+
     95 | vpn             | testing         | n/a             | n/a             |
     96 +-----------------+-----------------+-----------------+-----------------+
     97 
     98 Here is a rough explanation of the values:
     99 
    100 .. todo:: 0.10.x is outdated - rewrite "\ ``stable``\ " to reflect 
    101           a time-independent meaning.
    102 
    103 '\ ``stable``\ '
    104    No incompatible changes are planned at this time; for IPC/APIs, if
    105    there are incompatible changes, they will be minor and might only
    106    require minimal changes to existing code; for P2P, changes will be
    107    avoided if at all possible for the current major version.
    108 
    109 '\ ``testing``\ '
    110    No incompatible changes are planned at this time, but the code is
    111    still known to be in flux; so while we have no concrete plans, our
    112    expectation is that there will still be minor modifications; for P2P,
    113    changes will likely be extensions that should not break existing code
    114 
    115 '\ ``unstable``\ '
    116    Changes are planned and will happen; however, they will not be
    117    totally radical and the result should still resemble what is there
    118    now; nevertheless, anticipated changes will break protocol/API
    119    compatibility
    120 
    121 '\ ``experimental``\ '
    122    Changes are planned and the result may look nothing like what the
    123    API/protocol looks like today
    124 
    125 '\ ``unknown``\ '
    126    Someone should think about where this subsystem headed
    127 
    128 '\ ``n/a``\ '
    129    This subsystem does not implement a corresponding API/protocol