Changes since version 0.3.2

Release date: July 1, 2015

New features:

- Allow compilation of ndn-cxx as a shared library (Issue 2243)

  In this release, by default, only a static library is compiled. The
  next release will change the default behavior to compile only a
  shared library.

- Introduce concept of PartialName (Issue 1962)

  Semantically, PartialName abstraction represents an arbitrary
  sequence of name components, while Name represents an absolute name.
  Currently, PartialName is typedef alias to Name, but it can be
  changed in the future releases.

- Introduce generalized signing API in KeyChain (Issues 2871, 1705)

  A new API in KeyChain introduces a general interface to sign
  interest and data packets and supply necessary signing information,
  such as signing identity name, signing key name, or signing
  certificate name. In addition, the supplied signing information can
  include additional information that signer wants to include in the
  SignatureInfo of the signed packet.

- Introduce helpers to create SigningInfo for the generalized signing
  API (Issue 2922)
- Sqlite3Statement utility helper that wraps an SQLite3 statements and
  provide automatic memory cleanup
- Introduce PibSqlite3 based on PibImpl (Issue 2807)
- Make public interface of Pib, Identity, and Key as read-only (Issue 2928)
- New encoding block helpers to simplify operations with std::string
  (Issue 2951):
  - prependStringBlock
  - makeStringBlock
  - readString

Improvements and bug fixes:

- Use C++11 lambda expression and smart pointers in Face
  implementation (Issue 2112)
- Fix compilation failure on OS X 10.10 with cryptopp from MacPorts
- Update client.conf manpage
- Change Name::compare to return negative, zero, or positive integer
  (instead of strictly -1, 0, 1) when the first name comes before the
  other in canonical ordering, is equal, or comes after (Issue 2445)
- IdentityCertificate sets default FreshnessPeriod to 1 hour (Issue 2872)
- Unify TPM creation (Issue 2722)
- Allow negative start index in Name::getSubName method (Issue 1962)
- Improved documentation of PibImpl interfaces (Issues 2896, 2898)
- Simplify CommandOptions with SigningInfo (Issue 2893)
- Refactor internal PIT to use scheduled events (Issues 1372, 2518)
- Improve structure and documentation of block helpers (Issue 2951)
- Declare all move constructors as noexcept to ensure move operations
  are used even when a restrictive move operation (move_if_noexcept)
  is used (e.g., in STL library's containers) (Issue 2966)

Deprecated:

- The following KeyChain::sign* methods, in favor of generalized
  KeyChain::sign(..., SigningInfo)
  - KeyChain::sign(Packet, Name)
  - KeyChain::sign(uint8_t*, size_t, Name)
  - KeyChain::signByIdentity(Packet, Name)
  - KeyChain::signByIdentity(uint8_t*, size_t, Name)
  - KeyChain::signWithSha256(Data)
  - KeyChain::signWithSha256(Interest)
- The following encoding block helper functions:
  - nonNegativeIntegerBlock (use makeNonNegativeIntegerBlock)
  - prependBooleanBlock (use prependEmptyBlock)
  - booleanBlock (use makeEmptyBlock)
  - dataBlock (use makeBinaryBlock)
  - nestedBlock (use makeNestedBlock)
- The following methods of CommandOptions class, use setSigningInfo()
  instead (Issue 2893):
  - CommandOptions::getSigningParamsKind
  - CommandOptions::getSigningIdentity
  - CommandOptions::getSigningCertificate
  - CommandOptions::setSigningDefault
  - CommandOptions::setSigningIdentity
  - CommandOptions::setSigningCertificate

Removed:

- Remove SCOPE from Interests and all references to it in the related
  code (Issue 2345)
- Direct FIB management in Face class (Issue 2533)

  Face::register and Face::setInterestFilter methods now only support
  NFD RIB management protocol.

  For special needs, FIB management can be implemented using
  nfd::Controller (start<FibAddNextHopCommand>, and
  start<FibRemoveNextHopCommand>)

Upcoming features (partially finished in development branches):

- NDNLPv2 (http://redmine.named-data.net/projects/nfd/wiki/NDNLPv2,
  Issues 2520, 2879, 2763, 2883, 2841, 2866)
- New NDN certificate format (Issues 2861, 2868)
- NDN trust schema as a description of application trust model, which
  can help automate data and interest packet signing and
  authentication (Issue 2829)
- Refactored KeyChain abstraction (Issue 2926)
  1. 8868140 Add `noexcept` to move constructors and move assignment operators by Junxiao Shi · 9 years ago
  2. 5519cc7 build: Allow compilation as a shared library by Alexander Afanasyev · 9 years ago
  3. 00f855e build: Fix compilation failure on OS X 10.10 with cryptopp from MacPorts by Alexander Afanasyev · 9 years ago
  4. fc294ae build: Disable precompiled headers on OS X with clang < 6.1.0 by Alexander Afanasyev · 9 years ago
  5. 0dcb6a2 build: Update waf to version 1.8.8-dev (with custom patches) by Alexander Afanasyev · 9 years ago
  6. 895395f build: detect override & final specifiers support by Junxiao Shi · 9 years ago
  7. 3e7d2ac build: Explicitly define _GLIBCXX_USE_NANOSLEEP if gcc < 4.8 is used by Alexander Afanasyev · 9 years ago
  8. c940f4b build: Update waf to 1.8.5-dev by Alexander Afanasyev · 10 years ago
  9. e3d6266 build: Fix bug in default-compiler-flags.py by Stephen McQuistin · 10 years ago
  10. 0151579 build: Several updates of the build scripts by Alexander Afanasyev · 10 years ago
  11. 8d71fdb util: Signal by Junxiao Shi · 10 years ago
  12. c97d5d4 encoding: ensure Buffer is move constructible and assignable by Junxiao Shi · 10 years ago
  13. 4c32e74 ci: Build in debug mode for code coverage analysis by Alexander Afanasyev · 10 years ago
  14. dfe9c6b Always build in C++11 mode. by Davide Pesavento · 10 years ago
  15. 34e378c build: Do not warn about C99 extensions by Alexander Afanasyev · 10 years ago
  16. b1ab0ca build: minor fix for python3 compatibility. by Davide Pesavento · 10 years ago
  17. b578ab3 build: Disable `unneeded-internal-declaration` warning by Alexander Afanasyev · 10 years ago
  18. 24b75c8 src: Minor corrections and improvements by Alexander Afanasyev · 10 years ago
  19. 8b1674a build: Reviving support for precompiled headers by Alexander Afanasyev · 10 years ago
  20. 46ffa69 build: downgrade maybe-uninitialized from an error to a warning by Junxiao Shi · 10 years ago
  21. ae80f10 build: Correcting library detection by Alexander Afanasyev · 10 years ago
  22. fff47d6 build: Add optional pthread flag when detecting Crypto++ by Alexander Afanasyev · 10 years ago
  23. 16f24c5 build: Fixing typo in a build script by Mathias Gibbens · 10 years ago
  24. b67090a build+tests: Fixing c++11 mode compilation and correcting integrated test with faces by Alexander Afanasyev · 10 years ago
  25. a06fdda src: Centralize version number by Alexander Afanasyev · 10 years ago
  26. 3e6a98e build: Adding `-Werror` during compiler flag detection phase by Alexander Afanasyev · 10 years ago
  27. 766cea7 ====== Renaming library to ndn-cxx ====== by Alexander Afanasyev · 10 years ago
  28. 1160baa build: Reorganizing wscript into a set smaller function-specific scripts by Alexander Afanasyev · 10 years ago
  29. 96d523b build: Fix boost and openssl detection scripts by Alexander Afanasyev · 10 years ago
  30. b78bc4d build: add -std=c++03 (in non C++11 mode) and -pedantic to the default CXXFLAGS by Alexander Afanasyev · 10 years ago
  31. 482ccc5 build: suppress CryptoPP warnings by Junxiao Shi · 10 years ago
  32. 5e1288e docs: Updated installation instructions, AUTHORs, and other small updates by Alexander Afanasyev · 10 years ago
  33. dafdc37 build: Raising requirement for boost to be at least 1.48 by Alexander Afanasyev · 10 years ago
  34. f5df8e6 build: Extending wscript to enable coverage information with --with-coverage option by Alexander Afanasyev · 10 years ago
  35. a1ae0a1 build: Adding waf as a build system by Alexander Afanasyev · 10 years ago