<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>Hello all,</div>
<div><br>
</div>
<div>New code has been added to NDN-CPP in GitHub for NDN-CPP Lite, a light-weight C++ layer over the C language core in NDN-CPP.</div>
<div>
<p>The main C++ API for NDN-CPP uses the Standard Library classes like std::vector and shared_ptr to automatically manage memory in objects. For data packet encoding, decoding and network transport, the C++ API calls an inner core written in pure C which does
 not make any assumptions about memory management or support libraries.</p>
<p>Some low-power platforms like an Arduino microcontroller don't support the C++ Standard Library or run-time info for exceptions. To support such platforms, the NDN-CPP Lite API was developed which, like the C core, does not make assumptions about memory
 management or support libraries. While functionally equivalent to the C core, the NDN-CPP Lite takes advantage of C++ syntax to simplify the API. For example, the following C code initializes a MetaInfo struct:</p>
<pre><code>struct ndn_MetaInfo metaInfo;
ndn_MetaInfo_initialize(&metaInfo);
</code></pre>
<p>The following equivalent NDN-CPP Lite code initializes a MetaInfoLite object:</p>
<pre><code>MetaInfoLite metaInfo;
</code></pre>
<p>The MetaInfoLite constructor internally calls the same ndn_MetaInfo_initialize function, but C++ syntax, method overloading and namespace support makes the NDN-CPP Lite code cleaner and less error-prone.</p>
<p>The file <a href="https://github.com/named-data/ndn-cpp/blob/master/examples/arduino/analog-reading/analog-reading.ino">
examples/arduino/analog-reading/analog-reading.ino</a> uses NDN-CPP Lite for an Arduino application which registers a prefix, receives an interest over TCP and returns a signed (with HMAC) data packet holding a measurement value. The compiled application is
 about 28 kilobytes as required by the small microcontroller program space.</p>
<p>For more explanation and sample code, see <a href="https://github.com/named-data/ndn-cpp/blob/master/README-NDN-CPP-Lite.md">README-NDN-CPP-Lite.md</a>. Currently, the NDN-CPP Lite documentation is in the class and method doc comments in
<a href="https://github.com/named-data/ndn-cpp/tree/master/include/ndn-cpp/lite">
include/ndn-cpp/lite</a>.</p>
<p>Thank you,</p>
<p>- Jeff T</p>
</div>
</body>
</html>