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. 9fcc24f docs: improve example applications by Steve DiBenedetto · 10 years ago
  2. 28d0d94 build: Support tools and examples with multiple translation units by Alexander Afanasyev · 10 years ago
  3. b678306 examples: Do not use /localhost prefix in examples by Alexander Afanasyev · 10 years ago
  4. 24b75c8 src: Minor corrections and improvements by Alexander Afanasyev · 10 years ago
  5. c169a81 src: Switching to LGPL 3.0 license by Alexander Afanasyev · 10 years ago
  6. 9c57818 src: Making use of DEPRECATED macro and updating library code not to use deprecated methods by Alexander Afanasyev · 10 years ago
  7. b67090a build+tests: Fixing c++11 mode compilation and correcting integrated test with faces by Alexander Afanasyev · 10 years ago
  8. dfa52c4 docs: Updating documentation and license boilerplates in all files by Alexander Afanasyev · 10 years ago
  9. 766cea7 ====== Renaming library to ndn-cxx ====== by Alexander Afanasyev · 10 years ago
  10. dbfb16f examples: Fixing regression with Producer example (incorrect use of setContent) by Alexander Afanasyev · 10 years ago
  11. 151a855 docs: Extending documentation and manpages by Alexander Afanasyev · 10 years ago
  12. b1db7c6 build: Warnings correction for gcc 4.2 by Alexander Afanasyev · 10 years ago
  13. aa0e7da all: Refactoring work with time using boost::chrono by Alexander Afanasyev · 10 years ago
  14. be4150e security: Adjust unlocking TPM process. by Yingdi Yu · 10 years ago
  15. 29e5c3d encoding: Fixing Block (and as a result Name) encoding bugs by Alexander Afanasyev · 10 years ago
  16. 0222fba api: Major API change. OnInterest/OnData callbacks now use just references, not shared pointers by Alexander Afanasyev · 10 years ago
  17. e289b53 face: Implementing nfd::Controller by Alexander Afanasyev · 10 years ago
  18. 59efe10 build: Disabling shared library (only static library is compiled) and disabling installation of tests and examples by Alexander Afanasyev · 10 years ago
  19. f646889 util: Importing scheduler, originally implemented in NFD by Alexander Afanasyev · 10 years ago
  20. 09c613f src: Another round of source updates: moving all headers close to implementation files by Alexander Afanasyev · 10 years ago
  21. 1e0a077 build: Fixing build and unit tests by Alexander Afanasyev · 10 years ago
  22. 200dd6f build: Finalizing build system conversion by Alexander Afanasyev · 10 years ago
  23. d409d59 build: Finalizing waf building system (removing legacy code) by Alexander Afanasyev · 10 years ago
  24. a1ae0a1 build: Adding waf as a build system by Alexander Afanasyev · 10 years ago
  25. 61ec272 renaming: ndn-cpp to ndn-cpp-dev by Yingdi Yu · 11 years ago
  26. a1a0c24 build: Correcting dependencies in [examples/tests/tests_boost]/Makefile.am so the code can be compiled on Linux by Alexander Afanasyev · 11 years ago
  27. 22a315f examples: Make producer.cpp to use default KeyChain by Alexander Afanasyev · 11 years ago
  28. f4330ee tests+Makefile: updates corresponding to refactored KeyChain and related classes by Yingdi Yu · 11 years ago
  29. 3e7788b security+examples+tests: Updating examples and tests for the updated security API by Alexander Afanasyev · 11 years ago
  30. 84c2bd4 tests: Porting forwarding entry test and fixing app tests by Alexander Afanasyev · 11 years ago
  31. c4b7598 examples: Add very basic consumer/producer apps by Alexander Afanasyev · 11 years ago