diff --git a/src/c/name.h b/src/c/name.h
index 68c3b6d..3a0ba31 100644
--- a/src/c/name.h
+++ b/src/c/name.h
@@ -79,6 +79,34 @@
  */
 int ndn_Name_match(struct ndn_Name *self, struct ndn_Name *name);
 
+/**
+ * Append a component to this name with the bytes in the given array.
+ * @param self pointer to the ndn_Name struct.
+ * @param value The bytes of the component.  This does not copy the bytes.
+ * @param valueLength The number of bytes in value.
+ * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
+ */
+ndn_Error ndn_Name_appendComponent(struct ndn_Name *self, uint8_t* value, size_t valueLength);
+
+/**
+ * Append a component to this name with the bytes in the given blob.
+ * @param self pointer to the ndn_Name struct.
+ * @param value An ndn_Blob with the bytes of the component.  This does not copy the bytes.
+ * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
+ */
+static inline ndn_Error ndn_Name_appendBlob(struct ndn_Name *self, struct ndn_Blob *value)
+{
+  return ndn_Name_appendComponent(self, value->value, value->length);
+}
+
+/**
+ * Append a component to this name with the bytes in raw string value.
+ * @param self pointer to the ndn_Name struct.
+ * @param value The null-terminated string, treated as a byte array.  This does not copy the bytes.
+ * @return 0 for success, or an error code if there is no more room in the components array (nComponents is already maxComponents).
+ */
+ndn_Error ndn_Name_appendString(struct ndn_Name *self, char* value);
+
 #ifdef __cplusplus
 }
 #endif
