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. 6c63230 build: Enable detailed version information when built from shallow clone or tarball by Alexander Afanasyev · 10 years ago
  2. 8b1674a build: Reviving support for precompiled headers by Alexander Afanasyev · 10 years ago
  3. fff47d6 build: Add optional pthread flag when detecting Crypto++ by Alexander Afanasyev · 10 years ago
  4. 7c6aeb0 docs: Importing initial set of library documentation from wiki by Alexander Afanasyev · 10 years ago
  5. a1ae0a1 build: Adding waf as a build system by Alexander Afanasyev · 10 years ago
  6. 06e9d25 src: Adding pkgconfig script, so apps can use pkg-config to get all necesasry parameters to compile against the library by Alexander Afanasyev · 11 years ago
  7. fffd1e4 renaming: Make names of the tools unique by Yingdi Yu · 11 years ago
  8. 61ec272 renaming: ndn-cpp to ndn-cpp-dev by Yingdi Yu · 11 years ago
  9. 38d7968 tools: ndncatchunks and ndnputchunks tool by Wentao Shang · 11 years ago
  10. c4b7598 examples: Add very basic consumer/producer apps by Alexander Afanasyev · 11 years ago
  11. 303b350 tools: Adding tlvdump app that visualizes TLV encoding stored in files by Alexander Afanasyev · 11 years ago
  12. fad679c tests: Conditional compilation of tests (including boost-based unit tests) by Alexander Afanasyev · 11 years ago
  13. ab82bc5 src: Add compiled tests to .gitignore by Alexander Afanasyev · 11 years ago
  14. 7eb64f1 build: Makefile.am corrections (separate Makefile.am for tests) by Alexander Afanasyev · 11 years ago
  15. bf4652a src+build: Removing autogenerated files from the git repo by Alexander Afanasyev · 11 years ago
  16. dc2c430 make: Add ax_lib_sqlite3.m4, etc. to m4 directory so that autogen.sh works out of the box. Refs #1064. by Jeff Thompson · 11 years ago
  17. 6e22904 make: Create include directory for make install to install headers. Put ndn-cpp-config.h in include/ndn-cpp. by Jeff Thompson · 11 years ago
  18. d0f62e1 make: If have sqlite3 headers, require libsqlite3. by Jeff Thompson · 11 years ago
  19. 23cb742 make: Added AC_CONFIG_MACRO_DIR([m4]). by Jeff Thompson · 11 years ago
  20. 508f2da make: Don't need to distribute libtool. by Jeff Thompson · 11 years ago
  21. b752300 make: In ndn-cpp-config.h, to avoid polluting the global name space, generate NDN_CPP_HAVE_BOOST_FUNCTION etc. instead of HAVE_BOOST_FUNCTION, etc. by Jeff Thompson · 11 years ago
  22. 649e95f make: Change configure to output ndn-cpp/ndn-cpp-config.h instead of config.h by Jeff Thompson · 11 years ago
  23. 469e92a Ignore compiled files in libs. by Jeff Thompson · 11 years ago
  24. 167fae4 Need config.guess by Jeff Thompson · 11 years ago
  25. 63ea1ec Need config.sub by Jeff Thompson · 11 years ago
  26. 82e9e6e Don't distribute aclocal.m4 (now that we have AM_MAINTAINER_MODE) by Jeff Thompson · 11 years ago
  27. ef3c40b For now, distrubute aclocal.m4 by Jeff Thompson · 11 years ago
  28. 914eb56 Ignore tar.gz by Jeff Thompson · 11 years ago
  29. cc2474f Put the executables in subdir bin by Jeff Thompson · 11 years ago
  30. ae6c1a0 Ignore Doxygen output by Jeff Thompson · 11 years ago
  31. 3617406 Enable make ndn-cpp.a by Jeff Thompson · 11 years ago
  32. 104fcb3 Ignore config.h by Jeff Thompson · 11 years ago
  33. 9e69c15 Ignore .deps by Jeff Thompson · 11 years ago
  34. c2abe21 Ignore temporary .dirstamp from make by Jeff Thompson · 11 years ago
  35. 39128c6 Added output files from autogen by Jeff Thompson · 11 years ago
  36. 03c751a Add .gitignore by Jeff Thompson · 11 years ago