Alexander Afanasyev | 4df2230 | 2016-09-28 15:02:06 +0900 | [diff] [blame^] | 1 | ndn-cxx version 0.5.0 |
| 2 | --------------------- |
| 3 | |
| 4 | Release 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 | |
| 16 | Changes since version 0.4.1: |
| 17 | |
| 18 | New features: |
| 19 | ^^^^^^^^^^^^^ |
| 20 | |
| 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 | |
| 66 | Improvements 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 | |
| 97 | Deprecated |
| 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 |
| 107 | include as CryptoPP dependency may be removed from future versions of the library. |
| 108 | |
| 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 | |
| 118 | Removed |
| 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``. |