Initial port of the Name::Component, Name, Interest, Data, Signature, and Face classes
diff --git a/interest.rst b/interest.rst
new file mode 100644
index 0000000..614b354
--- /dev/null
+++ b/interest.rst
@@ -0,0 +1,197 @@
+.. _Interest:
+
+Interest Class
+==============
+
+:[C++]:
+ Namespace: ``ndn``
+
+:[Python]:
+ Module: ``pyndn``
+
+Interest Constructor
+--------------------
+
+Create a new Interest with the optional values.
+
+:[C++]:
+
+.. code-block:: c++
+
+ Interest(
+
+ [const Name& name]
+ [, int minSuffixComponents]
+ [, int maxSuffixComponents]
+ [, const PublisherPublicKeyDigest& publisherPublicKeyDigest]
+ [, const Exclude& exclude]
+ [, int childSelector]
+ [, int answerOriginKind]
+ [, int scope]
+ [, Milliseconds interestLifetimeMilliseconds]
+ [, const std::vector<uint8_t>& nonce]
+
+ );
+
+:[JavaScript]:
+
+.. code-block:: javascript
+
+ var Interest = function Interest (
+
+ [name // Name]
+ [, minSuffixComponents // number]
+ [, maxSuffixComponents // number]
+ [, publisherPublicKeyDigest // PublisherPublicKeyDigest]
+ [, exclude // Exclude]
+ [, childSelector // number]
+ [, answerOriginKind // number]
+ [, scope // number]
+ [, interestLifetimeMilliseconds // number]
+ [, nonce // Uint8Array]
+
+ )
+
+:[Python]:
+
+.. code-block:: python
+
+ def __init__(self
+
+ [, name // Name]
+ [, minSuffixComponents // int]
+ [, maxSuffixComponents // int]
+ [, publisherPublicKeyDigest // string]
+ [, exclude // Exclude]
+ [, childSelector // int]
+ [, answerOriginKind // int]
+ [, scope // int]
+ [, interestLifetime // float]
+ [, nonce // string]
+
+ )
+
+:Parameters:
+
+ - ``name``
+ (optional) The name of the content.
+
+.. TODO: define other parameters
+
+Interest.wireDecode Method
+--------------------------
+
+Decode the input using a particular wire format and update this Interest.
+
+:[C++]:
+
+.. code-block:: c++
+
+ void decode(
+
+ const std::vector<uint8_t>& input
+ [,WireFormat& wireFormat]
+
+ );
+
+:[JavaScript]:
+
+.. code-block:: javascript
+
+ Interest.prototype.decode = function(
+
+ input // Uint8Array
+ [, wireFormat // WireFormat]
+
+ )
+
+:Parameters:
+
+ - ``input``
+ The input byte array to be decoded.
+
+ - ``wireFormat``
+ (optional) A WireFormat object used to decode the input. If omitted, use WireFormat getDefaultWireFormat ().
+
+
+Interest.wireEncode Method
+--------------------------
+
+Encode this Interest for a particular wire format.
+
+:[C++]:
+
+.. code-block:: c++
+
+ Blob encode(
+
+ [WireFormat& wireFormat]
+
+ ) const;
+
+:[JavaScript]:
+
+.. code-block:: javascript
+
+ // Returns Uint8Array
+ Interest.prototype.encode = function(
+
+ [wireFormat // WireFormat]
+
+ )
+
+:Parameters:
+
+ - ``wireFormat``
+ (optional) A WireFormat object used to encode the input. If omitted, use use WireFormat getDefaultWireFormat ().
+
+:Returns:
+
+ The encoded byte array.
+
+Interest.matchesName Method
+---------------------------
+
+Return true if the components of this Interest’s name are the same as the leading components of the given name, and the name conforms to the interest selectors.
+
+:[C++]:
+
+.. code-block:: c++
+
+ bool matchesName(
+
+ const Name& name
+
+ ) const;
+
+:[JavaScript]:
+
+.. code-block:: javascript
+
+ // Returns boolean
+ Interest.prototype.matchesName = function(
+
+ name // Name
+
+ )
+
+:[Python]:
+
+.. code-block:: python
+
+ # Returns True or False
+ def matches_name(self,
+
+ name # Name
+
+ )
+
+:Parameters:
+
+ - ``name``
+ The Name to check against this Interest.
+
+:Returns:
+
+ True if this interest’s name and interest selectors match the name.
+