blob: 8c2efe1511672db34311f3884ec3e21409770d67 [file] [log] [blame]
Alexander Afanasyev45312f52015-09-27 12:06:50 -07001ndn-cxx version 0.3.0
2---------------------
3
4Release date: February 2, 2015
5
6Changes since version 0.2.0:
7
Davide Pesavento933a5672020-07-03 22:32:43 -04008New features
9^^^^^^^^^^^^
Alexander Afanasyev45312f52015-09-27 12:06:50 -070010
11- **Build**
12
13 + The code now requires C++11. The minimum supported gcc version is 4.6, as earlier versions
14 do not have proper support for C++11 features.
15
16- **Base**
17
18 + Enable detailed version information when built from shallow clone or tarball
19 (:issue:`1915`)
20
21 + Make default transport configurable (:issue:`2189`)
22
23 + Add ability to do partial Name comparison (:issue:`2090`)
24
25- **Security**
26
27 + Add support for KeyDigest key locator (:issue:`1426`)
28
29 + Add a method to get KeyDigest from a PublicKey instance (:issue:`1964`)
30
31 + Add support for KeyChain to sign Interest using SHA256 digest (:issue:`2218`)
32
33 + Add ``ndnsec-dsk-gen`` tool to generate a pair of Data-Signing-Key (DSK) for the specified
34 identity (:issue:`2246`)
35
36 + Pair-up PIB and TPM in KeyChain: PIB remembers the last used TPM type/location, which is
37 used during KeyChain construction (unless overriden) (:issue:`2242`)
38
39- **Wire encoding**
40
41 + Add support for application-defined meta information blocks (:issue:`2021`)
42
43 + Introduce new ``name::Component::is*`` methods to allow checking if the name component
44 follows the specific naming convention without relying on the exception handling
45 (:issue:`2088`)
46
47 + Add definition of producer-generated NACK (:issue:`2111`)
48
49 + Add ``std::hash<Name>`` specialization to support ``unordered_map`` container
50 (:issue:`2147`)
51
52 + Add support for ImplicitSha256DigestComponent (:issue:`1640`)
53
54 + Allow tagging Interest and Data packets with arbitrary information (:issue:`2336`)
55
56- **Management**
57
58 + Support NFD face query operation (:issue:`2085`)
59
60- **Miscellaneous tools**
61
62 + Add a new helper to calculate digests over dynamic inputs (:issue:`1934`)
63
64 + Add DNS resolver helper (:issue:`1918`)
65
66 + Import and re-license Ethernet and FaceUri classes from NFD codebase, add FaceUri
67 canonization support for ``udp``, ``tcp``, and ``ether`` schemas (:issue:`1994`)
68
69 + Add per-application in-memory storage with LRU, LFU, and FIFO replacement policies
70 (:issue:`1940`)
71
72 + Add ability to specialize system and steady clocks (e.g., for unit tests and simulation
73 purposes) (:issue:`2158`)
74
75 + Expose DummyClientFace as public API
76
77 + New IndentedStream helper class to simplify writing to streams with the specified indents
78 or prefixes (:issue:`2238`)
79
80 + New Signal class template as an enhanced version of the deprecated EventEmitter
81 (:issue:`2279`)
82
83 + New scheduler::ScopedEventId helper to automatically cancel scheduled events upon
84 destruction (:issue:`2442`)
85
86 + New NetworkMonitor helper to detect network state changes (:issue:`2443`)
87
Davide Pesavento933a5672020-07-03 22:32:43 -040088Updates and bug fixes
89^^^^^^^^^^^^^^^^^^^^^
Alexander Afanasyev45312f52015-09-27 12:06:50 -070090
91- **Base**
92
93 + Prevent flags being set for rib/unregister command (:issue:`1945`)
94
95 + Fix segfault caused by Face::unregisterPrefix when registeredPrefixId does not exist
96
97 + Add explicit internal KeyChain to Face class. KeyChain previously existed in the Face as
98 part of NFD controller class. (:issue:`2039`)
99
100 + Properly disable assertions in release builds (:issue:`2135`)
101
102 + Connect to Transport during construction of Face instance (:issue:`2318`)
103
104- **Wire encoding**
105
106 + Fix segfault when decoding empty Exclude element (:issue:`1970`)
107
108 + Provide EqualityComparable concept for Exclude element
109
110 + Correct Marker in Name::appendVersion() (:issue:`2086`)
111
112 + Ensure that wire-encoding errors are inherited from ``tlv::Error`` (:issue:`1983`)
113
114- **Management**
115
116 + Replace FaceFlags with individual fields in face management data structures (:issue:`1992`)
117
118 + ``ndn::nfd::Controller`` extended to allow generating ControlCommand for remote prefix
119 registration (:issue:`2039`)
120
121 + Change ``ForwarderStatus.NfdVersion`` to string (:issue:`2003`)
122
123- **Security**
124
125 + Fix ``ndnsec-cert-gen`` to correctly infer prefix before KEY component (:issue:`2052`)
126
127 + Help message corrections in ``ndnsec-cert-dump``, ``ndnsec-cert-gen``, and
128 ``ndnsec-key-gen`` (:issue:`2052`)
129
130 + Accept ``--sign-id`` and ``--cert-prefix`` in ``ndnsec-cert-revoke`` (:issue:`2058`)
131
132 + Changes output format of ``ndnsec-cert-revoke`` to base64 encoding (:issue:`2059`)
133
134 + Add a new (safer) option to ``ndnsec-cert-gen`` allowing inclusion of additional
135 information blocks into the certificate. The new ``--signed-info`` parameter makes minimum
136 assumptions, treating text before first space as OID and the rest as the associated string
137 with this OID.
138
139 + Make Face optional in Validator class (:issue:`2124`)
140
141 + Display signature information when printing a certificate (:issue:`2196`)
142
143 + Handle certificate decoding error in validation process (:issue:`2212`)
144
145 + Fix segmentation fault in ``ndnsec-sign-req`` (:issue:`2211`)
146
147 + Allow verbose option in ``ndnsec-list`` (:issue:`2197`)
148
149 + Allow generation of DSK using ``ndnsec-key-gen`` (:issue:`2247`)
150
151 + Allow ``ndnsec-key-gen`` to generate ECDSA keys (:issue:`2248`)
152
153 + Fix memory leak in SecPublicInfoSqlite3 (:issue:`2253`)
154
155 + Properly report status of ``ndnsec-delete`` execution (:issue:`2275`)
156
157- **Miscellaneous tools**
158
159 + Fix incorrect tag map in ``tlvdump`` tool
160
161 + Change to default resolver behavior in util::dns::Resolver (:issue:`2415`)
162
163- **Documentation**
164
165 + Update of tutorials and installation instructions
166
167 + Rename manpage of ``client.conf`` to ``ndn-client.conf`` (:issue:`1967`)
168
169 + Updated and extended ndn-cxx code style:
170
171 - add rules for some C++11 constructs
172 - prefer ``BOOST_ASSERT`` and ``static_assert``
173
174 + Improve example applications (:issue:`1976`)
175
176- **Tests**
177
178 + Improve security unit test cases (:issue:`1683`)
179
180 + Embedding CI build and test running scripts into the repository
181
182 + Partial unit test coverage for Face class (previously covered only by integration tests)
183 (:issue:`1947`)
184
185 + Improve stability of unit tests by using UnitTestTime (wall clock independent time)
186 (:issue:`2152`)
187
188- **Build**
189
190 + Redesign the way default compiler flags are determined (:issue:`2209`)
191
192 + Support tools and examples with multiple translation units (:issue:`2344`)
193
194 + Disable installation of internal headers and headers of the disabled components
195 (:issue:`2266`, and :issue:`2269`)
196
197 + Enable conditional compilation based on presence of ``getpass()`` function
198
199- Other minor fixes and corrections
200
Davide Pesavento933a5672020-07-03 22:32:43 -0400201Deprecated
202^^^^^^^^^^
Alexander Afanasyev45312f52015-09-27 12:06:50 -0700203
204- ``ndn::ptr_lib`` and ``ndn::func_lib`` namespace aliases
205
206- The following ``nfd::Controller`` methods:
207
208 + ``Controller::start`` overloads, except the overload taking ``CommandOptions``
209 + ``Controller::Sign`` typedef
210 + ``Controller::getDefaultCommandTimeout``
211 + ``ControlCommand::getPrefix``
212 + ``ControlCommand::getRequestName(ControlParameters)``
213 + ``Controller::Controller(Face&)``
214
215- ``MetaInfo::TYPE_*`` constants
216
217- ``EventEmitter`` is deprecated in favor of ``Signal``
218
Davide Pesavento933a5672020-07-03 22:32:43 -0400219Removed
220^^^^^^^
Alexander Afanasyev45312f52015-09-27 12:06:50 -0700221
222- FaceFlags APIs (:issue:`1992`)
223
224- ``ControlCommand::makeCommandInterest`` (:issue:`2008`)
225
226- namespace ``ndn::Tlv`` (:issue:`2079`)
227
228- ``shared_ptr<io_service>`` constructor and getter in Face class
229
230- ``tlv::ConentType`` (typo in the name)
231
232- ``Selectors::Selectors(int, int, Exclude, int, bool)`` constructor
233
234- ``Interest::Interest(Name, int, int, Exclude, int, bool, int, time::milliseconds, uint32_t)``
235 constructor
236
237- ``signature-sha256.hpp`` file
238
239- unused ``encryption-manager.hpp`` file
240
241- unused ``openssl`` dependency