Rename ndncatchunks to ndnget

Change-Id: I260e552746e900a73c2ce773bd91d9b6fa384734
diff --git a/tools/chunks/README.md b/tools/chunks/README.md
index 3c73bcf..2c68eed 100644
--- a/tools/chunks/README.md
+++ b/tools/chunks/README.md
@@ -1,45 +1,14 @@
-# ndncatchunks and ndnputchunks
+# ndnputchunks
 
-**ndncatchunks** and **ndnputchunks** are a pair of programs to transfer a file as Data segments.
+**ndnputchunks** is a producer program that reads a file from the standard input, and makes
+it available as a set of NDN Data segments. It appends version and segment number components
+to the specified name as needed, according to the [NDN naming conventions](
+https://named-data.net/publications/techreports/ndn-tr-22-3-ndn-memo-naming-conventions/).
 
-* **ndnputchunks** is a producer program that reads a file from the standard input, and makes
-  it available as a set of NDN Data segments. It appends version and segment number components
-  to the specified name as needed, according to the [NDN naming conventions](
-  https://named-data.net/publications/techreports/ndn-tr-22-3-ndn-memo-naming-conventions/).
-
-* **ndncatchunks** is a consumer program that fetches Data segments of a file, optionally
-  discovering the latest version of the file, and writes the content of the retrieved file to
-  the standard output.
-
-## Version discovery in ndncatchunks
-
-If a version component is present at the end of the user-specified NDN name, the provided version
-number will be used, without any version discovery process. Otherwise, discovery Interest(s) will
-be sent out to fetch metadata of the solicited content from which the Data version will be resolved.
-For more information about the packet format and naming conventions of Interest and Data packets
-used for version discovery in ndncatchunks, please refer to:
-[Realtime Data Retrieval (RDR) protocol](https://redmine.named-data.net/projects/ndn-tlv/wiki/RDR).
-
-## Interest pipeline types in ndncatchunks
-
-* `fixed`: maintains a fixed-size window of Interests in flight; the window size is configurable
-           via a command line option and defaults to 1.
-
-* `aimd` : adjusts the window size via additive-increase/multiplicative-decrease (AIMD).
-           By default, it uses a Conservative Window Adaptation, that is, the congestion window
-           will be decreased at most once per round-trip-time.
-
-* `cubic`: adjusts the window size similar to the TCP CUBIC algorithm.
-           For details about both aimd and cubic please refer to:
-           [A Practical Congestion Control Scheme for Named Data
-           Networking](https://conferences2.sigcomm.org/acm-icn/2016/proceedings/p21-schneider.pdf).
-
-The default Interest pipeline type is `cubic`.
+Files published by ndnputchunks can be fetched with [ndnget](../get/README.md).
 
 ## Usage examples
 
-### Publishing
-
 The following command will publish the text of the GPL-3 license under the `/localhost/demo/gpl3`
 prefix:
 
@@ -60,17 +29,3 @@
 
 If the specified version component is not valid, ndnputchunks will exit with an error. If no version
 component is specified, one will be generated and appended to the name.
-
-### Retrieval
-
-To retrieve the latest version of a published file, the following command can be used:
-
-    ndncatchunks /localhost/demo/gpl3
-
-To fetch a specific version of a published file, you can specify the version number at the end of
-the name. For example, if the version is known to be 1449078495094, the following command
-will fetch that exact version of the file (without version discovery):
-
-    ndncatchunks -Nt /localhost/demo/gpl3/v=1449078495094
-
-For more information, run the programs with `--help` as argument.
diff --git a/tools/chunks/wscript b/tools/chunks/wscript
index 417bbf6..31fddd1 100644
--- a/tools/chunks/wscript
+++ b/tools/chunks/wscript
@@ -2,30 +2,13 @@
 top = '../..'
 
 def build(bld):
-
     bld.objects(
-        target='ndncatchunks-objects',
-        source=bld.path.ant_glob('catchunks/*.cpp', excl='catchunks/main.cpp'),
-        use='core-objects')
-
-    bld.program(
-        target='../../bin/ndncatchunks',
-        name='ndncatchunks',
-        source='catchunks/main.cpp',
-        use='ndncatchunks-objects')
-
-    bld.objects(
-        target='ndnputchunks-objects',
+        target='chunks-objects',
         source=bld.path.ant_glob('putchunks/*.cpp', excl='putchunks/main.cpp'),
         use='core-objects')
 
     bld.program(
-        target='../../bin/ndnputchunks',
+        target=f'{top}/bin/ndnputchunks',
         name='ndnputchunks',
         source='putchunks/main.cpp',
-        use='ndnputchunks-objects')
-
-    ## (for unit tests)
-
-    bld(target='chunks-objects',
-        use='ndncatchunks-objects ndnputchunks-objects')
+        use='chunks-objects')
diff --git a/tools/get/README.md b/tools/get/README.md
new file mode 100644
index 0000000..90774c9
--- /dev/null
+++ b/tools/get/README.md
@@ -0,0 +1,44 @@
+# ndnget
+
+**ndnget** is a consumer program that fetches the segments (Data packets) of a named object,
+optionally discovering the latest version of the object, and then writes the content of the
+retrieved object to the standard output.
+
+## Version discovery in ndnget
+
+If a version component is present at the end of the user-specified NDN name, the provided version
+number will be used, without any version discovery process. Otherwise, discovery Interest(s) will
+be sent out to fetch metadata of the solicited content from which the Data version will be resolved.
+For more information about the packet format and naming conventions of Interest and Data packets
+used for version discovery in ndnget, please refer to:
+[Realtime Data Retrieval (RDR) protocol](https://redmine.named-data.net/projects/ndn-tlv/wiki/RDR).
+
+## Interest pipeline types in ndnget
+
+* `fixed`: maintains a fixed-size window of Interests in flight; the window size is configurable
+           via a command line option and defaults to 1.
+
+* `aimd` : adjusts the window size via additive-increase/multiplicative-decrease (AIMD).
+           By default, it uses a Conservative Window Adaptation, that is, the congestion window
+           will be decreased at most once per round-trip-time.
+
+* `cubic`: adjusts the window size similar to the TCP CUBIC algorithm.
+           For details about both aimd and cubic please refer to:
+           [A Practical Congestion Control Scheme for Named Data
+           Networking](https://conferences2.sigcomm.org/acm-icn/2016/proceedings/p21-schneider.pdf).
+
+The default Interest pipeline type is `cubic`.
+
+## Usage examples
+
+To retrieve the latest version of a published object, the following command can be used:
+
+    ndnget /localhost/demo/gpl3
+
+To fetch a specific version of a published object, you can specify the version number at the end
+of the name. For example, if the version is known to be 1449078495094, the following command
+will fetch that exact version of the object (without version discovery):
+
+    ndnget -Nt /localhost/demo/gpl3/v=1449078495094
+
+For more information, run the programs with `--help` as argument.
diff --git a/tools/chunks/catchunks/consumer.cpp b/tools/get/consumer.cpp
similarity index 95%
rename from tools/chunks/catchunks/consumer.cpp
rename to tools/get/consumer.cpp
index 6d30d70..10b9d04 100644
--- a/tools/chunks/catchunks/consumer.cpp
+++ b/tools/get/consumer.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -29,7 +29,7 @@
 
 #include <ndn-cxx/util/exception.hpp>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 Consumer::Consumer(security::Validator& validator, std::ostream& os)
   : m_validator(validator)
@@ -87,4 +87,4 @@
   }
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/consumer.hpp b/tools/get/consumer.hpp
similarity index 91%
rename from tools/chunks/catchunks/consumer.hpp
rename to tools/get/consumer.hpp
index 980df60..9e40dba 100644
--- a/tools/chunks/catchunks/consumer.hpp
+++ b/tools/get/consumer.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -25,8 +25,8 @@
  * @author Andrea Tosatto
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_CONSUMER_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_CONSUMER_HPP
+#ifndef NDN_TOOLS_GET_CONSUMER_HPP
+#define NDN_TOOLS_GET_CONSUMER_HPP
 
 #include "discover-version.hpp"
 #include "pipeline-interests.hpp"
@@ -38,7 +38,7 @@
 #include <iostream>
 #include <map>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 /**
  * @brief Segmented version consumer.
@@ -101,6 +101,6 @@
   std::map<uint64_t, std::shared_ptr<const Data>> m_bufferedData;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_CONSUMER_HPP
+#endif // NDN_TOOLS_GET_CONSUMER_HPP
diff --git a/tools/chunks/catchunks/data-fetcher.cpp b/tools/get/data-fetcher.cpp
similarity index 97%
rename from tools/chunks/catchunks/data-fetcher.cpp
rename to tools/get/data-fetcher.cpp
index e058ca0..1f3506a 100644
--- a/tools/chunks/catchunks/data-fetcher.cpp
+++ b/tools/get/data-fetcher.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -31,7 +31,7 @@
 #include <cmath>
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 std::shared_ptr<DataFetcher>
 DataFetcher::fetch(Face& face, const Interest& interest, int maxNackRetries, int maxTimeoutRetries,
@@ -173,4 +173,4 @@
   }
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/data-fetcher.hpp b/tools/get/data-fetcher.hpp
similarity index 93%
rename from tools/chunks/catchunks/data-fetcher.hpp
rename to tools/get/data-fetcher.hpp
index 765963d..fa968a8 100644
--- a/tools/chunks/catchunks/data-fetcher.hpp
+++ b/tools/get/data-fetcher.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -24,8 +24,8 @@
  * @author Davide Pesavento
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_DATA_FETCHER_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_DATA_FETCHER_HPP
+#ifndef NDN_TOOLS_GET_DATA_FETCHER_HPP
+#define NDN_TOOLS_GET_DATA_FETCHER_HPP
 
 #include "core/common.hpp"
 
@@ -34,7 +34,7 @@
 
 #include <functional>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 /**
  * @brief Fetch data for a given interest and handle timeout or nack error with retries.
@@ -130,6 +130,6 @@
   bool m_hasError = false;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_DATA_FETCHER_HPP
+#endif // NDN_TOOLS_GET_DATA_FETCHER_HPP
diff --git a/tools/chunks/catchunks/discover-version.cpp b/tools/get/discover-version.cpp
similarity index 96%
rename from tools/chunks/catchunks/discover-version.cpp
rename to tools/get/discover-version.cpp
index 3e75850..530e469 100644
--- a/tools/chunks/catchunks/discover-version.cpp
+++ b/tools/get/discover-version.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -33,7 +33,7 @@
 
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 DiscoverVersion::DiscoverVersion(Face& face, const Name& prefix, const Options& options)
   : m_face(face)
@@ -94,4 +94,4 @@
   onDiscoverySuccess(mobject.getVersionedName());
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/discover-version.hpp b/tools/get/discover-version.hpp
similarity index 87%
rename from tools/chunks/catchunks/discover-version.hpp
rename to tools/get/discover-version.hpp
index 1098d85..99eaa18 100644
--- a/tools/chunks/catchunks/discover-version.hpp
+++ b/tools/get/discover-version.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -26,15 +26,15 @@
  * @author Chavoosh Ghasemi
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_DISCOVER_VERSION_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_DISCOVER_VERSION_HPP
+#ifndef NDN_TOOLS_GET_DISCOVER_VERSION_HPP
+#define NDN_TOOLS_GET_DISCOVER_VERSION_HPP
 
 #include "options.hpp"
 
 #include <ndn-cxx/face.hpp>
 #include <ndn-cxx/util/signal.hpp>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 class DataFetcher;
 
@@ -73,6 +73,6 @@
   std::shared_ptr<DataFetcher> m_fetcher;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_DISCOVER_VERSION_HPP
+#endif // NDN_TOOLS_GET_DISCOVER_VERSION_HPP
diff --git a/tools/chunks/catchunks/main.cpp b/tools/get/main.cpp
similarity index 97%
rename from tools/chunks/catchunks/main.cpp
rename to tools/get/main.cpp
index 6c763a9..bd1a0e8 100644
--- a/tools/chunks/catchunks/main.cpp
+++ b/tools/get/main.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -47,7 +47,7 @@
 #include <fstream>
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 namespace po = boost::program_options;
 
@@ -170,7 +170,7 @@
   }
 
   if (vm.count("version") > 0) {
-    std::cout << "ndncatchunks " << tools::VERSION << "\n";
+    std::cout << "ndnget " << tools::VERSION << "\n";
     return 0;
   }
 
@@ -310,10 +310,10 @@
   return 0;
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
 int
 main(int argc, char* argv[])
 {
-  return ndn::chunks::main(argc, argv);
+  return ndn::get::main(argc, argv);
 }
diff --git a/tools/chunks/catchunks/options.hpp b/tools/get/options.hpp
similarity index 90%
rename from tools/chunks/catchunks/options.hpp
rename to tools/get/options.hpp
index d21481a..5b65540 100644
--- a/tools/chunks/catchunks/options.hpp
+++ b/tools/get/options.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -24,15 +24,15 @@
  * @author Davide Pesavento
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_OPTIONS_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_OPTIONS_HPP
+#ifndef NDN_TOOLS_GET_OPTIONS_HPP
+#define NDN_TOOLS_GET_OPTIONS_HPP
 
 #include <ndn-cxx/interest.hpp>
 #include <ndn-cxx/util/time.hpp>
 
 #include <limits>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 struct Options
 {
@@ -64,6 +64,6 @@
   bool enableFastConv = false;  ///< use cubic fast convergence
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_OPTIONS_HPP
+#endif // NDN_TOOLS_GET_OPTIONS_HPP
diff --git a/tools/chunks/catchunks/pipeline-interests-adaptive.cpp b/tools/get/pipeline-interests-adaptive.cpp
similarity index 98%
rename from tools/chunks/catchunks/pipeline-interests-adaptive.cpp
rename to tools/get/pipeline-interests-adaptive.cpp
index 492229f..96949ef 100644
--- a/tools/chunks/catchunks/pipeline-interests-adaptive.cpp
+++ b/tools/get/pipeline-interests-adaptive.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -33,7 +33,7 @@
 #include <iomanip>
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 PipelineInterestsAdaptive::PipelineInterestsAdaptive(Face& face,
                                                      RttEstimatorWithStats& rttEstimator,
@@ -458,4 +458,4 @@
   return os;
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/pipeline-interests-adaptive.hpp b/tools/get/pipeline-interests-adaptive.hpp
similarity index 94%
rename from tools/chunks/catchunks/pipeline-interests-adaptive.hpp
rename to tools/get/pipeline-interests-adaptive.hpp
index 572418f..23e1138 100644
--- a/tools/chunks/catchunks/pipeline-interests-adaptive.hpp
+++ b/tools/get/pipeline-interests-adaptive.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -26,8 +26,8 @@
  * @author Klaus Schneider
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_ADAPTIVE_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_ADAPTIVE_HPP
+#ifndef NDN_TOOLS_GET_PIPELINE_INTERESTS_ADAPTIVE_HPP
+#define NDN_TOOLS_GET_PIPELINE_INTERESTS_ADAPTIVE_HPP
 
 #include "pipeline-interests.hpp"
 
@@ -38,7 +38,7 @@
 #include <queue>
 #include <unordered_map>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 using util::RttEstimatorWithStats;
 
@@ -70,8 +70,8 @@
  *
  * Retrieves all segmented Data under the specified prefix by maintaining a dynamic
  * congestion window combined with a Conservative Loss Adaptation algorithm. For details,
- * please refer to the description in section "Interest pipeline types in ndncatchunks" of
- * tools/chunks/README.md
+ * please refer to the description in section "Interest pipeline types in ndnget" of
+ * tools/get/README.md
  *
  * Provides retrieved Data on arrival with no ordering guarantees. Data is delivered to the
  * PipelineInterests' user via callback immediately upon arrival.
@@ -226,6 +226,6 @@
   std::string m_failureReason;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_ADAPTIVE_HPP
+#endif // NDN_TOOLS_GET_PIPELINE_INTERESTS_ADAPTIVE_HPP
diff --git a/tools/chunks/catchunks/pipeline-interests-aimd.cpp b/tools/get/pipeline-interests-aimd.cpp
similarity index 94%
rename from tools/chunks/catchunks/pipeline-interests-aimd.cpp
rename to tools/get/pipeline-interests-aimd.cpp
index 4d84fdd..37beb58 100644
--- a/tools/chunks/catchunks/pipeline-interests-aimd.cpp
+++ b/tools/get/pipeline-interests-aimd.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2022, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -30,7 +30,7 @@
 
 #include <cmath>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 PipelineInterestsAimd::PipelineInterestsAimd(Face& face, RttEstimatorWithStats& rttEstimator,
                                              const Options& opts)
@@ -64,4 +64,4 @@
   emitSignal(afterCwndChange, time::steady_clock::now() - getStartTime(), m_cwnd);
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/pipeline-interests-aimd.hpp b/tools/get/pipeline-interests-aimd.hpp
similarity index 83%
rename from tools/chunks/catchunks/pipeline-interests-aimd.hpp
rename to tools/get/pipeline-interests-aimd.hpp
index 1792f95..858db87 100644
--- a/tools/chunks/catchunks/pipeline-interests-aimd.hpp
+++ b/tools/get/pipeline-interests-aimd.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2022, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -26,12 +26,12 @@
  * @author Klaus Schneider
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_AIMD_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_AIMD_HPP
+#ifndef NDN_TOOLS_GET_PIPELINE_INTERESTS_AIMD_HPP
+#define NDN_TOOLS_GET_PIPELINE_INTERESTS_AIMD_HPP
 
 #include "pipeline-interests-adaptive.hpp"
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 /**
  * @brief Implements AIMD window increase and decrease.
@@ -49,6 +49,6 @@
   decreaseWindow() final;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_AIMD_HPP
+#endif // NDN_TOOLS_GET_PIPELINE_INTERESTS_AIMD_HPP
diff --git a/tools/chunks/catchunks/pipeline-interests-cubic.cpp b/tools/get/pipeline-interests-cubic.cpp
similarity index 96%
rename from tools/chunks/catchunks/pipeline-interests-cubic.cpp
rename to tools/get/pipeline-interests-cubic.cpp
index 7fa57a5..a74e602 100644
--- a/tools/chunks/catchunks/pipeline-interests-cubic.cpp
+++ b/tools/get/pipeline-interests-cubic.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -28,7 +28,7 @@
 #include <cmath>
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 constexpr double CUBIC_C = 0.4;
 
@@ -111,4 +111,4 @@
   emitSignal(afterCwndChange, time::steady_clock::now() - getStartTime(), m_cwnd);
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/pipeline-interests-cubic.hpp b/tools/get/pipeline-interests-cubic.hpp
similarity index 85%
rename from tools/chunks/catchunks/pipeline-interests-cubic.hpp
rename to tools/get/pipeline-interests-cubic.hpp
index 87b4824..8451fd3 100644
--- a/tools/chunks/catchunks/pipeline-interests-cubic.hpp
+++ b/tools/get/pipeline-interests-cubic.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2022, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -23,12 +23,12 @@
  * @author Klaus Schneider
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_CUBIC_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_CUBIC_HPP
+#ifndef NDN_TOOLS_GET_PIPELINE_INTERESTS_CUBIC_HPP
+#define NDN_TOOLS_GET_PIPELINE_INTERESTS_CUBIC_HPP
 
 #include "pipeline-interests-adaptive.hpp"
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 /**
  * @brief Implements Cubic window increase and decrease.
@@ -54,6 +54,6 @@
   time::steady_clock::time_point m_lastDecrease; ///< time of last window decrease
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_CUBIC_HPP
+#endif // NDN_TOOLS_GET_PIPELINE_INTERESTS_CUBIC_HPP
diff --git a/tools/chunks/catchunks/pipeline-interests-fixed.cpp b/tools/get/pipeline-interests-fixed.cpp
similarity index 97%
rename from tools/chunks/catchunks/pipeline-interests-fixed.cpp
rename to tools/get/pipeline-interests-fixed.cpp
index 9e8ffa1..4d26a04 100644
--- a/tools/chunks/catchunks/pipeline-interests-fixed.cpp
+++ b/tools/get/pipeline-interests-fixed.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -32,7 +32,7 @@
 
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 PipelineInterestsFixed::PipelineInterestsFixed(Face& face, const Options& opts)
   : PipelineInterests(face, opts)
@@ -194,4 +194,4 @@
   }
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/pipeline-interests-fixed.hpp b/tools/get/pipeline-interests-fixed.hpp
similarity index 90%
rename from tools/chunks/catchunks/pipeline-interests-fixed.hpp
rename to tools/get/pipeline-interests-fixed.hpp
index 8e9e3ce..6325123 100644
--- a/tools/chunks/catchunks/pipeline-interests-fixed.hpp
+++ b/tools/get/pipeline-interests-fixed.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024,  Regents of the University of California,
+ * Copyright (c) 2016-2025,  Regents of the University of California,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University.
  *
@@ -27,14 +27,14 @@
  * @author Chavoosh Ghasemi
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_FIXED_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_FIXED_HPP
+#ifndef NDN_TOOLS_GET_PIPELINE_INTERESTS_FIXED_HPP
+#define NDN_TOOLS_GET_PIPELINE_INTERESTS_FIXED_HPP
 
 #include "pipeline-interests.hpp"
 
 #include <vector>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 class DataFetcher;
 
@@ -92,6 +92,6 @@
   bool m_hasFailure = false;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_FIXED_HPP
+#endif // NDN_TOOLS_GET_PIPELINE_INTERESTS_FIXED_HPP
diff --git a/tools/chunks/catchunks/pipeline-interests.cpp b/tools/get/pipeline-interests.cpp
similarity index 97%
rename from tools/chunks/catchunks/pipeline-interests.cpp
rename to tools/get/pipeline-interests.cpp
index 2e29487..afcbd0c 100644
--- a/tools/chunks/catchunks/pipeline-interests.cpp
+++ b/tools/get/pipeline-interests.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -36,7 +36,7 @@
 
 #include <iostream>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 PipelineInterests::PipelineInterests(Face& face, const Options& opts)
   : m_options(opts)
@@ -157,4 +157,4 @@
   return "";
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/pipeline-interests.hpp b/tools/get/pipeline-interests.hpp
similarity index 94%
rename from tools/chunks/catchunks/pipeline-interests.hpp
rename to tools/get/pipeline-interests.hpp
index 2757b21..93245c2 100644
--- a/tools/chunks/catchunks/pipeline-interests.hpp
+++ b/tools/get/pipeline-interests.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2016-2024, Regents of the University of California,
+ * Copyright (c) 2016-2025, Regents of the University of California,
  *                          Colorado State University,
  *                          University Pierre & Marie Curie, Sorbonne University.
  *
@@ -28,8 +28,8 @@
  * @author Chavoosh Ghasemi
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_HPP
+#ifndef NDN_TOOLS_GET_PIPELINE_INTERESTS_HPP
+#define NDN_TOOLS_GET_PIPELINE_INTERESTS_HPP
 
 #include "core/common.hpp"
 #include "options.hpp"
@@ -38,7 +38,7 @@
 
 #include <functional>
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 /**
  * @brief Service for retrieving Data via an Interest pipeline
@@ -181,6 +181,6 @@
   return packet.getName().at(-1).toSegment();
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_PIPELINE_INTERESTS_HPP
+#endif // NDN_TOOLS_GET_PIPELINE_INTERESTS_HPP
diff --git a/tools/chunks/catchunks/statistics-collector.cpp b/tools/get/statistics-collector.cpp
similarity index 93%
rename from tools/chunks/catchunks/statistics-collector.cpp
rename to tools/get/statistics-collector.cpp
index 2e303c9..214402f 100644
--- a/tools/chunks/catchunks/statistics-collector.cpp
+++ b/tools/get/statistics-collector.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2022,  Regents of the University of California,
+ * Copyright (c) 2016-2025,  Regents of the University of California,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University.
  *
@@ -24,7 +24,7 @@
 
 #include "statistics-collector.hpp"
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 StatisticsCollector::StatisticsCollector(PipelineInterestsAdaptive& pipeline,
                                          std::ostream& osCwnd, std::ostream& osRtt)
@@ -47,4 +47,4 @@
   });
 }
 
-} // namespace ndn::chunks
+} // namespace ndn::get
diff --git a/tools/chunks/catchunks/statistics-collector.hpp b/tools/get/statistics-collector.hpp
similarity index 82%
rename from tools/chunks/catchunks/statistics-collector.hpp
rename to tools/get/statistics-collector.hpp
index 95abbae..4aba545 100644
--- a/tools/chunks/catchunks/statistics-collector.hpp
+++ b/tools/get/statistics-collector.hpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016-2022,  Regents of the University of California,
+ * Copyright (c) 2016-2025,  Regents of the University of California,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University.
  *
@@ -22,12 +22,12 @@
  * @author Weiwei Liu
  */
 
-#ifndef NDN_TOOLS_CHUNKS_CATCHUNKS_STATISTICS_COLLECTOR_HPP
-#define NDN_TOOLS_CHUNKS_CATCHUNKS_STATISTICS_COLLECTOR_HPP
+#ifndef NDN_TOOLS_GET_STATISTICS_COLLECTOR_HPP
+#define NDN_TOOLS_GET_STATISTICS_COLLECTOR_HPP
 
 #include "pipeline-interests-adaptive.hpp"
 
-namespace ndn::chunks {
+namespace ndn::get {
 
 /**
  * @brief Statistics collector for Adaptive pipelines
@@ -43,6 +43,6 @@
   std::ostream& m_osRtt;
 };
 
-} // namespace ndn::chunks
+} // namespace ndn::get
 
-#endif // NDN_TOOLS_CHUNKS_CATCHUNKS_STATISTICS_COLLECTOR_HPP
+#endif // NDN_TOOLS_GET_STATISTICS_COLLECTOR_HPP
diff --git a/tools/get/wscript b/tools/get/wscript
new file mode 100644
index 0000000..9a325c4
--- /dev/null
+++ b/tools/get/wscript
@@ -0,0 +1,17 @@
+# -*- Mode: python; py-indent-offset: 4; indent-tabs-mode: nil; coding: utf-8; -*-
+top = '../..'
+
+def build(bld):
+    bld.objects(
+        target='get-objects',
+        source=bld.path.ant_glob('*.cpp', excl='main.cpp'),
+        use='core-objects')
+
+    bld.program(
+        target=f'{top}/bin/ndnget',
+        name='ndnget',
+        source='main.cpp',
+        use='get-objects')
+
+    # backward compatibility
+    bld.symlink_as('${BINDIR}/ndncatchunks', 'ndnget')