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