blob: b81f209e5b85856eed015a9bea40169dd8fa1ca2 [file] [log] [blame]
Alexander Afanasyev4df22302016-09-28 15:02:06 +09001ndn-cxx version 0.5.0
2---------------------
3
4Release date: October 4, 2016
5
6.. note::
7 As of version 0.5.0, ndn-cxx requires a modern compiler (gcc >= 4.8.2, clang >= 3.4) and a
8 relatively new version of Boost libraries (>= 1.54). This means that the code no longer compiles
9 with the packaged version of gcc and boost libraries on Ubuntu 12.04. ndn-cxx can still be
10 compiled on such systems, but requires separate installation of a newer version of the compiler
11 (e.g., clang-3.4) and dependencies.
12
13.. note::
14 The library now has a dependency on OpenSSL >= 1.0.1
15
16Changes since version 0.4.1:
17
Davide Pesavento933a5672020-07-03 22:32:43 -040018New features
19^^^^^^^^^^^^
Alexander Afanasyev4df22302016-09-28 15:02:06 +090020
21- New transformation API (:issue:`3009`)
22
23 * base64 and hex encoding/decoding
24 * digest calculation (SHA256)
25 * HMAC calculation
26 * block cipher operations (AES in CBC mode)
27 * public key signing/verification
28
29- Introduce environment variables to set/override transport, pib, and tpm configurations
30 (:issue:`2925`, :issue:`2514`)
31
32 * ``NDN_CLIENT_TRANSPORT``: equivalent of transport in client.conf
33 * ``NDN_CLIENT_PIB``: equivalent of pib in client.conf
34 * ``NDN_CLIENT_TPM``: equivalent of tpm in client.conf
35
36 Whenever an environment variable is set, it takes precedence over any values specified in the
37 configuration file.
38
39- Introduce logging facility based on Boost.Log (:issue:`3562`)
40
41 The logging can be enabled on selected moduled at the selected log level through ``NDN_LOG``
42 environment variable. For example,
43
44 ::
45
46 export NDN_LOG=ndn.mgmt.Dispatcher=TRACE
47
48- Introduce ``Name::deepCopy`` to allow memory optimizations when working with ``Name`` objects
49 (:issue:`3618`)
50
51- New ``ndn::security::CommandInterestValidator`` class (:issue:`2376`)
52
53- Add ``StatusDataset`` client functionality into ``ndn::nfd::Controller`` (:issue:`3329`)
54
55- New ``FaceUpdateCommand`` structure for NFD management protocols (:issue:`3232`)
56
57- **breaking change** Add Flags and Mask fields to faces/create and faces/update, add Flags field to
58 FaceStatus (:issue:`3731`, :issue:`3732`)
59
60- New ``SafeBag`` structure for private key export/import (:issue:`3048`)
61
62- ``ndn::io::loadBlock`` and ``saveBlock`` (:issue:`3741`)
63
64- Backport of C++17 ``std::clamp`` and ``std::optional`` (:issue:`3636`, :issue:`3753`)
65
66Improvements and bug fixes
67^^^^^^^^^^^^^^^^^^^^^^^^^^
68
69- **breaking change** Expose ``ControlResponse`` as part of ``Controller::CommandFailCallback``
70 (:issue:`3739`)
71
72- **breaking change** Change security constants to corresponding strongly typed enumerations
73 (:issue:`3083`)
74
75- Fix ``SegmentFetcher`` restarting from segment 0 upon Nack (:issue:`3554`)
76
77- Fix support for ``ImplicitSha256Digest`` name component in ``Exclude`` selector
78 (:issue:`3665`)
79
80- Enable ``KeyChain`` customization in ``DummyClientFace`` (:issue:`3435`)
81
82- Make ``ValidatorConfig`` to evaluate all checkers inside a rule (:issue:`3645`)
83
84- Add validation of ``StatusDataset`` and ``ControlCommand`` responses in
85 ``ndn::nfd::Controller`` (:issue:`3653`)
86
87- Enable handling of NACKs in Validator and NotificationSubscriber classes (:issue:`3332`,
88 :issue:`3662`)
89
90- Several fixes in ``Scheduler`` class (:issue:`3722`, :issue:`3691`)
91
92- Add option to override ``processEvents`` method in ``DummyClientFace`` class (:issue:`3769`)
93
94- Several other improvements, including fixes of potential segmentation faults and memory leaks
95 (:issue:`3136`, :issue:`3248`, :issue:`3723`, :issue:`3727`)
96
97Deprecated
98^^^^^^^^^^
99
100- Constant ``io::BASE_64``, use ``io::BASE64`` instead (:issue:`3741`)
101
102- Headers ``management/nfd-*``, use ``mgmt/nfd/*`` instead (:issue:`3760`)
103
104- ``ndn::crypto::sha256`` in favor of ``ndn::crypto::computeSha256Digest``
105
106- ``security/cryptopp.hpp`` header. Use ``security/v1/cryptopp.hpp`` when needed, avoid direct
Davide Pesavento933a5672020-07-03 22:32:43 -0400107 include as CryptoPP dependency will be removed from future versions of the library.
Alexander Afanasyev4df22302016-09-28 15:02:06 +0900108
109- ``security/identity-certificate.hpp`` header. Use ``security/v1/identity-certificate.hpp`` instead.
110
111- ``ndn::PublicKey``, ``ndn::Certificate``, ``ndn::IdentityCertificate``,
112 ``ndn::CertificateExtension``, ``ndn::CertificateSubjectDescription``. When necessary, use
113 ``security::v1::PublicKey``, ``security::v1::Certificate``, ``security::v1::IdentityCertificate``,
114 ``security::v1::CertificateExtension``, ``security::v1::CertificateSubjectDescription`` instead.
115 The next release will feature :doc:`a new version of NDN Certificate format
116 <../specs/certificate-format>`.
117
118Removed
119^^^^^^^
120
121- Previously deprecated LocalControlHeader (:issue:`3755`)
122
123- Previously deprecated ``makeDummyClientFace`` function, use ``DummyClientFace`` constructors
124 directly (:issue:`3383`)
125
126- Previously deprecated ``Name::set``, use constructors directly (:issue:`2506`)
127
128- Previously deprecated ``Block::fromBuffer`` and block helpers (:issue:`2950`, :issue:`2636`)
129
130 * ``Block::fromBuffer`` overloads with output parameter
131 * ``ndn::encoding::prependBlock``
132 * ``ndn::encoding::prependByteArrayBlock``
133 * ``ndn::encoding::nonNegativeIntegerBlock``
134 * ``ndn::encoding::prependBooleanBlock``
135 * ``ndn::encoding::booleanBlock``
136 * ``ndn::encoding::dataBlock``
137 * ``ndn::encoding::nestedBlock``
138
139- Previously deprecated Command Interest classes (:issue:`2008`)
140
141 * ``CommandInterestGenerator``, replaced by ``KeyChain::sign``
142 * ``ndn::util::CommandInterestValidator``, replaced by
143 ``ndn::security::CommandInterestValidator``
144
145- ndncatchunks3 and ndnputchunks3 apps. Use ndncatchunks and ndnputchunks from `NDN Essential
146 Tools (ndn-tools) <https://github.com/named-data/ndn-tools>`__ (:issue:`3547`)
147
148- ``ndn::ndn_digestSha256`` function. Use ``ndn::crypto::computeSha256Digest`` instead.
149
150- **potentially breaking change** Headers ``security/certificate-extension.hpp``,
151 ``security/certificate-subject-description.hpp``, and ``security/certificate.hpp``. When necessary,
152 use the corresponding headers in ``security/v1/*`` or ``security/v1/identity-certificate.hpp``.