diff --git a/ndn-cxx/face.hpp b/ndn-cxx/face.hpp
index a5a1b46..ed2ea76 100644
--- a/ndn-cxx/face.hpp
+++ b/ndn-cxx/face.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2023 Regents of the University of California.
+ * Copyright (c) 2013-2025 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -424,16 +424,6 @@
     return m_ioCtx;
   }
 
-  /**
-   * @deprecated Use getIoContext()
-   */
-  [[deprecated("use getIoContext")]]
-  boost::asio::io_context&
-  getIoService() const noexcept
-  {
-    return m_ioCtx;
-  }
-
 NDN_CXX_PUBLIC_WITH_TESTS_ELSE_PROTECTED:
   /**
    * @brief Returns the underlying transport.
diff --git a/ndn-cxx/name-component.hpp b/ndn-cxx/name-component.hpp
index 50ffc6e..b99619f 100644
--- a/ndn-cxx/name-component.hpp
+++ b/ndn-cxx/name-component.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2013-2024 Regents of the University of California.
+ * Copyright (c) 2013-2025 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -230,13 +230,6 @@
   static Component
   fromUri(std::string_view input);
 
-  [[deprecated("use fromUri")]]
-  static Component
-  fromEscapedString(std::string_view input)
-  {
-    return Component::fromUri(input);
-  }
-
   /**
    * @brief Write `*this` to the output stream, escaping characters according to the NDN URI format.
    * @sa https://docs.named-data.net/NDN-packet-spec/0.3/name.html#ndn-uri-scheme
