This is an automated email from the ASF dual-hosted git repository.

cmcfarlen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new f600c164c9 Introduce tsutil from tsapicore and tscpputil (#10928)
f600c164c9 is described below

commit f600c164c910e192790c559a2a5f903316da8f60
Author: Chris McFarlen <ch...@mcfarlen.us>
AuthorDate: Wed Dec 13 12:35:41 2023 -0600

    Introduce tsutil from tsapicore and tscpputil (#10928)
    
    * move tsapicore to tsutil
    
    * Move tscpp/util to tsutil
    
    * cmake format
    
    * cleanup remaining tscore deps from tsutil
    
    * what on earth
---
 CMakeLists.txt                                     |  2 +-
 NOTICE                                             |  2 +-
 cmake/add_atsplugin.cmake                          |  2 +-
 .../internal-libraries/buffer-writer.en.rst        |  2 +-
 .../introduction/header-file-structure.en.rst      | 13 ++--
 include/iocore/cache/CacheEvacuateDocVC.h          |  2 +-
 include/iocore/eventsystem/EThread.h               |  2 +-
 include/iocore/net/SNIActionItem.h                 |  2 +-
 include/iocore/net/SSLSNIConfig.h                  |  2 +-
 include/iocore/net/YamlSNIConfig.h                 |  2 +-
 include/iocore/net/quic/QUICStats.h                |  2 +-
 include/proxy/ControlMatcher.h                     |  2 +-
 include/proxy/hdrs/HdrToken.h                      |  2 +-
 include/proxy/http/HttpConfig.h                    |  6 +-
 include/proxy/http/PreWarmManager.h                |  2 +-
 include/proxy/http/remap/UrlMapping.h              |  2 +-
 include/proxy/http/remap/UrlRewrite.h              |  2 +-
 include/proxy/http2/HTTP2.h                        |  2 +-
 include/proxy/http3/Http3.h                        |  2 +-
 include/proxy/logging/LogConfig.h                  |  2 +-
 include/records/RecHttp.h                          |  2 +-
 include/records/RecYAMLDefs.h                      |  2 +-
 include/shared/rpc/RPCRequests.h                   |  2 +-
 include/ts/ts.h                                    |  6 +-
 include/tscore/CryptoHash.h                        |  2 +-
 include/tscore/Diags.h                             |  4 +-
 include/tscore/DiagsTypes.h                        | 10 ++-
 include/tscore/History.h                           |  2 +-
 include/tscore/LogMessage.h                        |  2 +-
 include/tscore/Regression.h                        |  2 +-
 include/{api => tsutil}/Assert.h                   |  7 +-
 include/{tscpp/util => tsutil}/Bravo.h             |  6 +-
 include/{tscpp/util => tsutil}/Convert.h           |  0
 include/{api => tsutil}/DbgCtl.h                   |  4 +-
 include/{tscpp/util => tsutil}/DenseThreadId.h     | 15 +----
 include/{tscpp/util => tsutil}/Histogram.h         |  0
 include/{tscpp/util => tsutil}/LocalBuffer.h       |  1 +
 include/{api => tsutil}/Metrics.h                  |  2 +-
 include/{tscpp/util => tsutil}/PostScript.h        |  0
 include/{tscpp/util => tsutil}/Regex.h             |  0
 include/{api => tsutil}/SourceLocation.h           |  0
 include/{tscpp/util => tsutil}/Strerror.h          |  2 +-
 include/{tscpp/util => tsutil}/TsSharedMutex.h     | 30 +++------
 include/{tscpp/util => tsutil}/YamlCfg.h           |  0
 include/{api => tsutil}/ts_bw_format.h             |  0
 include/{api => tsutil}/ts_diag_levels.h           |  0
 include/{api => tsutil}/ts_errata.h                |  4 +-
 include/{tscpp/util => tsutil}/ts_ip.h             |  0
 include/{tscpp/util => tsutil}/ts_meta.h           |  0
 include/{tscpp/util => tsutil}/ts_time_parser.h    |  2 +-
 include/{tscpp/util => tsutil}/ts_unit_parser.h    |  0
 plugins/conf_remap/CMakeLists.txt                  |  1 -
 plugins/conf_remap/conf_remap.cc                   |  2 +-
 plugins/experimental/maxmind_acl/CMakeLists.txt    |  2 +-
 plugins/experimental/money_trace/money_trace.cc    |  2 +-
 plugins/experimental/sslheaders/CMakeLists.txt     |  4 +-
 plugins/experimental/tls_bridge/CMakeLists.txt     |  2 +-
 plugins/experimental/tls_bridge/tls_bridge.cc      |  2 +-
 plugins/experimental/uri_signing/parse.cc          |  2 +-
 plugins/remap_stats/remap_stats.cc                 |  2 +-
 plugins/s3_auth/s3_auth.cc                         |  2 +-
 plugins/s3_auth/unit_tests/CMakeLists.txt          |  2 +-
 plugins/slice/unit-tests/CMakeLists.txt            |  6 +-
 plugins/stats_over_http/stats_over_http.cc         |  2 +-
 plugins/xdebug/xdebug.cc                           |  2 +-
 src/api/CMakeLists.txt                             | 30 ---------
 src/api/InkAPI.cc                                  |  2 +-
 src/iocore/aio/P_AIO.h                             |  2 +-
 src/iocore/cache/CacheEvacuateDocVC.cc             |  2 +-
 src/iocore/cache/CacheVC.cc                        |  4 +-
 src/iocore/cache/P_CacheInternal.h                 |  2 +-
 src/iocore/cache/unit_tests/test_CacheVol.cc       |  2 +-
 src/iocore/dns/CMakeLists.txt                      |  2 +-
 src/iocore/dns/P_DNSProcessor.h                    |  4 +-
 src/iocore/eventsystem/CMakeLists.txt              |  2 +-
 src/iocore/hostdb/HostDB.cc                        |  2 +-
 src/iocore/hostdb/P_HostDBProcessor.h              |  4 +-
 src/iocore/hostdb/P_RefCountCache.h                |  4 +-
 src/iocore/io_uring/CMakeLists.txt                 |  4 +-
 src/iocore/io_uring/io_uring.cc                    |  2 +-
 src/iocore/io_uring/unit_tests/test_diskIO.cc      |  2 +-
 src/iocore/net/CMakeLists.txt                      |  2 +-
 src/iocore/net/ConnectionTracker.cc                |  2 +-
 src/iocore/net/P_Net.h                             |  2 +-
 src/iocore/net/P_SSLUtils.h                        |  2 +-
 src/iocore/net/P_Socks.h                           |  2 +-
 src/iocore/net/P_TLSKeyLogger.h                    |  2 +-
 src/iocore/net/SSLCertLookup.cc                    |  2 +-
 src/iocore/net/SSLSNIConfig.cc                     |  4 +-
 src/iocore/net/SSLSessionCache.h                   |  2 +-
 src/iocore/net/SSLStats.h                          |  2 +-
 src/iocore/net/YamlSNIConfig.cc                    |  2 +-
 src/mgmt/rpc/CMakeLists.txt                        |  8 +--
 src/mgmt/rpc/handlers/config/Configuration.cc      |  2 +-
 .../rpc/jsonrpc/unit_tests/test_basic_protocol.cc  |  2 +-
 src/mgmt/rpc/server/IPCSocketServer.cc             |  2 +-
 src/proxy/CMakeLists.txt                           |  2 +-
 src/proxy/CacheControl.cc                          |  2 +-
 src/proxy/HostStatus.cc                            |  2 +-
 src/proxy/IPAllow.cc                               |  4 +-
 src/proxy/hdrs/CMakeLists.txt                      |  4 +-
 src/proxy/hdrs/HdrToken.cc                         |  2 +-
 src/proxy/hdrs/VersionConverter.cc                 |  2 +-
 src/proxy/hdrs/XPACK.cc                            |  2 +-
 src/proxy/hdrs/test_urlhash.cc                     |  2 +-
 src/proxy/hdrs/unit_tests/test_Hdrs.cc             |  4 +-
 src/proxy/http/CMakeLists.txt                      |  2 +-
 src/proxy/http/Http1ServerSession.cc               |  2 +-
 src/proxy/http/HttpSM.cc                           |  2 +-
 src/proxy/http/HttpTransact.cc                     |  2 +-
 src/proxy/http/PreWarmManager.cc                   |  4 +-
 src/proxy/http/remap/NextHopConsistentHash.cc      |  2 +-
 src/proxy/http/remap/NextHopSelectionStrategy.cc   |  2 +-
 src/proxy/http/remap/NextHopStrategyFactory.cc     |  2 +-
 src/proxy/http/unit_tests/test_HttpTransact.cc     |  2 +-
 src/proxy/http2/HPACK.cc                           |  2 +-
 src/proxy/http2/HTTP2.cc                           |  2 +-
 src/proxy/http2/Http2ConnectionState.cc            |  4 +-
 src/proxy/http2/unit_tests/test_HTTP2.cc           |  2 +-
 src/proxy/http3/CMakeLists.txt                     |  4 +-
 src/proxy/logging/LogBuffer.cc                     |  2 +-
 src/proxy/logging/LogFilter.cc                     |  2 +-
 src/proxy/logging/LogUtils.cc                      |  2 +-
 .../logging/unit-tests/benchmark_LogObject.cc      |  2 +-
 src/records/CMakeLists.txt                         |  2 +-
 src/records/RecCore.cc                             |  4 +-
 src/records/RecYAMLDecoder.cc                      |  2 +-
 src/shared/rpc/IPCSocketClient.cc                  |  2 +-
 src/traffic_cache_tool/CMakeLists.txt              |  2 +-
 src/traffic_cache_tool/CacheDefs.h                 |  4 +-
 src/traffic_crashlog/CMakeLists.txt                |  2 +-
 src/traffic_ctl/CMakeLists.txt                     |  2 +-
 src/traffic_ctl/CtrlPrinters.cc                    |  2 +-
 src/traffic_ctl/FileConfigCommand.cc               |  2 +-
 src/traffic_layout/CMakeLists.txt                  |  2 +-
 src/traffic_server/CMakeLists.txt                  |  2 +-
 src/traffic_via/CMakeLists.txt                     |  2 +-
 src/traffic_via/traffic_via.cc                     |  2 +-
 src/tscore/CMakeLists.txt                          | 12 +---
 src/tscore/Diags.cc                                |  4 +-
 src/tscore/unit_tests/test_Bravo.cc                |  2 +-
 src/tscore/unit_tests/test_Histogram.cc            |  2 +-
 src/tscore/unit_tests/test_History.cc              |  2 +-
 .../unit_tests/test_X509HostnameValidator.cc       |  2 +-
 src/tscpp/util/CMakeLists.txt                      | 55 ----------------
 src/{api => tsutil}/Assert.cc                      |  4 +-
 src/tsutil/CMakeLists.txt                          | 74 ++++++++++++++++++++++
 src/{api => tsutil}/DbgCtl.cc                      | 10 +--
 src/{api => tsutil}/Metrics.cc                     |  4 +-
 src/{tscpp/util => tsutil}/Regex.cc                |  6 +-
 src/{api => tsutil}/SourceLocation.cc              |  2 +-
 src/{tscpp/util => tsutil}/YamlCfg.cc              |  8 +--
 src/{api => tsutil}/ts_diags.cc                    |  4 +-
 src/{tscpp/util => tsutil}/ts_ip.cc                |  7 +-
 src/{tscpp/util => tsutil}/ts_unit_parser.cc       |  4 +-
 .../util => tsutil}/unit_tests/test_LocalBuffer.cc |  2 +-
 src/{api => tsutil}/unit_tests/test_Metrics.cc     |  3 +-
 .../util => tsutil}/unit_tests/test_PostScript.cc  |  2 +-
 .../util => tsutil}/unit_tests/test_Regex.cc       |  2 +-
 .../util => tsutil}/unit_tests/test_Strerror.cc    |  2 +-
 .../util => tsutil}/unit_tests/test_time_parser.cc |  2 +-
 .../util => tsutil}/unit_tests/test_ts_meta.cc     |  2 +-
 .../util => tsutil}/unit_tests/unit_test_main.cc   |  0
 tests/CMakeLists.txt                               |  2 +-
 tests/fuzzing/CMakeLists.txt                       |  3 +-
 .../jsonrpc/plugins/jsonrpc_plugin_handler_test.cc |  2 +-
 tests/gold_tests/pluginTest/tsapi/test_tsapi.cc    |  2 +-
 tools/benchmark/benchmark_SharedMutex.cc           |  2 +-
 168 files changed, 286 insertions(+), 345 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6614f80559..ac0a9e1a2c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -568,8 +568,8 @@ configure_file(configs/records.yaml.default.in 
configs/records.yaml.default)
 configure_file(include/tscore/ink_config.h.cmake.in 
include/tscore/ink_config.h)
 configure_file(include/ts/apidefs.h.in include/ts/apidefs.h)
 
-add_subdirectory(src/tscpp/util)
 add_subdirectory(src/tscpp/api)
+add_subdirectory(src/tsutil)
 add_subdirectory(src/tscore)
 add_subdirectory(src/records)
 add_subdirectory(src/iocore)
diff --git a/NOTICE b/NOTICE
index 50552702ca..dc46d72a10 100644
--- a/NOTICE
+++ b/NOTICE
@@ -99,5 +99,5 @@ https://github.com/ariya/FastLZ
 
 ~~
 
-include/tscpp/util/Bravo.h is C++ version of puzpuzpuz/xsync's RBMutex
+include/tsutil/Bravo.h is C++ version of puzpuzpuz/xsync's RBMutex
 Copyright (c) 2021 Andrey Pechkurov (MIT License)
diff --git a/cmake/add_atsplugin.cmake b/cmake/add_atsplugin.cmake
index f67207534b..f8619789d1 100644
--- a/cmake/add_atsplugin.cmake
+++ b/cmake/add_atsplugin.cmake
@@ -19,7 +19,7 @@ set(CMAKE_SHARED_LIBRARY_PREFIX "")
 
 function(add_atsplugin name)
   add_library(${name} MODULE ${ARGN})
-  target_link_libraries(${name} PRIVATE ts::tsapi ts::tsapicore)
+  target_link_libraries(${name} PRIVATE ts::tsapi ts::tsutil)
   set_target_properties(${name} PROPERTIES PREFIX "")
   set_target_properties(${name} PROPERTIES SUFFIX ".so")
   install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_LIBEXECDIR})
diff --git a/doc/developer-guide/internal-libraries/buffer-writer.en.rst 
b/doc/developer-guide/internal-libraries/buffer-writer.en.rst
index 08453154dc..f1d788af9e 100644
--- a/doc/developer-guide/internal-libraries/buffer-writer.en.rst
+++ b/doc/developer-guide/internal-libraries/buffer-writer.en.rst
@@ -29,7 +29,7 @@ Synopsis
 
 .. code-block:: cpp
 
-   #include <api/ts_bw_format.h> // Above plus Formatting support.
+   #include <tsutil/ts_bw_format.h> // Above plus Formatting support.
 
 Description
 +++++++++++
diff --git a/doc/developer-guide/introduction/header-file-structure.en.rst 
b/doc/developer-guide/introduction/header-file-structure.en.rst
index b40299eec6..b75440bd64 100644
--- a/doc/developer-guide/introduction/header-file-structure.en.rst
+++ b/doc/developer-guide/introduction/header-file-structure.en.rst
@@ -32,11 +32,11 @@ The header files are located in the ``include/`` directory. 
There are several su
 
   The C++ Plugin API is deprecated in ATS 10.  It will be removed in ATS 11.
 
-"tscpp/util"
+"tsutil"
    C++ utilities. These are standalone headers (although they may depend on 
other headers in the
    same directory). These provide functionality that is used inside the |TS| 
core logic but has been
    demonstrated to be useful for plugins as well [#]_. The functions are in 
the library
-   ``libtscpputil.so``, although many of the utilities are header only. This 
library is linked in to
+   ``libtsutil.so``, although many of the utilities are header only. This 
library is linked in to
    the ``traffic_server`` binary and so linkage may not be needed for a plugin.
 
    This library is independent of the C++ API and can be used with or without 
that library.
@@ -46,17 +46,14 @@ The header files are located in the ``include/`` directory. 
There are several su
    data structures either directly or operationally. This is linked in to the 
``traffic_server`` binary therefore
    has no explicit linkage when used in the core.
 
-"api"
-   Plugin API internal header files. These are header files for the internal 
``tsapicore`` library (see below). Theses can only be used inside |TS| itself.
-
 New Plugin API layout
 =====================
 
 Previously, all plugin interfaces were built into the main |TS| binary. In an 
effort to enhance modularity and enable compile-time checks, these interfaces 
have been moved to ``src/api``. They are now isolated into a separate shared 
library ``tsapi.so``.
 
-In addition, a new static library ``tsapicore.a`` has been created, which 
contains code used by both the core and the plugins (via the plugin APIs), and 
is linked into the |TS| binary to keep functionalities consistent.
+In addition, a new static library ``tsutil.a`` has been created, which 
contains code used by both the core and the plugins (via the plugin APIs), and 
is linked into the |TS| binary to keep functionalities consistent.
 
-Note that ``tsapi.so`` depends on ``tsapicore.a`` and other static libraries in
+Note that ``tsapi.so`` depends on ``tsutil.a`` and other static libraries in
 the core. ``tsapi.so`` is not statically linked against these dependencies
 during its creation, but relies on them being linked into |TS|. To verify these
 dependencies, a compile-time sanity check links ``tsapi.so`` with the main
@@ -81,7 +78,7 @@ The contents of "lib/ts" were broken up and moved to 
different locations. The he
 "include/tscore" for core only headers, while headers to be made available to 
plugins were moved to
 "include/tscpp/util". The corresponding source files were moved to 
"src/tscore" and "src/tscpp/util"
 respectively. "libtsutil" was split in to "libtscore" for the core code and 
"libtscpputil" for shared
-code.
+code.  Now "libtscpputil" has been combined with "tsapicore" headers into the 
"tsutil" library.
 
 Appendix
 ========
diff --git a/include/iocore/cache/CacheEvacuateDocVC.h 
b/include/iocore/cache/CacheEvacuateDocVC.h
index d8fb925eaa..e5ccb82b96 100644
--- a/include/iocore/cache/CacheEvacuateDocVC.h
+++ b/include/iocore/cache/CacheEvacuateDocVC.h
@@ -39,7 +39,7 @@
 #include "tscore/ink_assert.h"
 
 // ts
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
 
 class CacheEvacuateDocVC : public CacheVC
 {
diff --git a/include/iocore/eventsystem/EThread.h 
b/include/iocore/eventsystem/EThread.h
index 0bb0d3f17c..ebcb520fc0 100644
--- a/include/iocore/eventsystem/EThread.h
+++ b/include/iocore/eventsystem/EThread.h
@@ -32,7 +32,7 @@
 #include "iocore/eventsystem/Thread.h"
 #include "iocore/eventsystem/PriorityEventQueue.h"
 #include "iocore/eventsystem/ProtectedQueue.h"
-#include "tscpp/util/Histogram.h"
+#include "tsutil/Histogram.h"
 
 // TODO: This would be much nicer to have "run-time" configurable (or 
something)
 #define PER_THREAD_DATA (1024 * 1024)
diff --git a/include/iocore/net/SNIActionItem.h 
b/include/iocore/net/SNIActionItem.h
index 9d991ce163..9dc6553c57 100644
--- a/include/iocore/net/SNIActionItem.h
+++ b/include/iocore/net/SNIActionItem.h
@@ -35,7 +35,7 @@
 #include <openssl/ssl.h>
 
 #include "tscore/ink_inet.h"
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
 
 class ActionItem
 {
diff --git a/include/iocore/net/SSLSNIConfig.h 
b/include/iocore/net/SSLSNIConfig.h
index af78eeaf20..e6832f4bc4 100644
--- a/include/iocore/net/SSLSNIConfig.h
+++ b/include/iocore/net/SSLSNIConfig.h
@@ -45,7 +45,7 @@
 #error "Unable to locate PCRE heeader"
 #endif
 
-#include "tscpp/util/ts_ip.h"
+#include "tsutil/ts_ip.h"
 
 #include "iocore/eventsystem/ConfigProcessor.h"
 #include "iocore/net/SNIActionItem.h"
diff --git a/include/iocore/net/YamlSNIConfig.h 
b/include/iocore/net/YamlSNIConfig.h
index ce57136e79..6ac8d76119 100644
--- a/include/iocore/net/YamlSNIConfig.h
+++ b/include/iocore/net/YamlSNIConfig.h
@@ -31,7 +31,7 @@
 
 #include "iocore/net/SSLTypes.h"
 
-#include "tscpp/util/ts_ip.h"
+#include "tsutil/ts_ip.h"
 
 #include "tscore/Errata.h"
 
diff --git a/include/iocore/net/quic/QUICStats.h 
b/include/iocore/net/quic/QUICStats.h
index ce48effbb1..40c9135c76 100644
--- a/include/iocore/net/quic/QUICStats.h
+++ b/include/iocore/net/quic/QUICStats.h
@@ -23,7 +23,7 @@
 
 #pragma once
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/include/proxy/ControlMatcher.h b/include/proxy/ControlMatcher.h
index 2ccf3461f1..714c12b2ca 100644
--- a/include/proxy/ControlMatcher.h
+++ b/include/proxy/ControlMatcher.h
@@ -94,7 +94,7 @@
 #include "tscore/ink_apidefs.h"
 #include "tscore/ink_defs.h"
 #include "proxy/hdrs/HTTP.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "proxy/hdrs/URL.h"
 
 #if __has_include("pcre/pcre.h")
diff --git a/include/proxy/hdrs/HdrToken.h b/include/proxy/hdrs/HdrToken.h
index 23f3ce03f8..c62cb1d7d4 100644
--- a/include/proxy/hdrs/HdrToken.h
+++ b/include/proxy/hdrs/HdrToken.h
@@ -30,7 +30,7 @@
 #include "tscore/ink_defs.h"
 #include "tscore/ink_string.h"
 #include "tscore/Allocator.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "tscore/ink_apidefs.h"
 
 ////////////////////////////////////////////////////////////////////////////
diff --git a/include/proxy/http/HttpConfig.h b/include/proxy/http/HttpConfig.h
index fbf75942b1..0af6cdb78f 100644
--- a/include/proxy/http/HttpConfig.h
+++ b/include/proxy/http/HttpConfig.h
@@ -47,13 +47,13 @@
 #include "tscore/ink_platform.h"
 #include "tscore/ink_inet.h"
 #include "tscore/ink_resolver.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "iocore/eventsystem/ConfigProcessor.h"
 #include "iocore/net/ConnectionTracker.h"
 #include "iocore/net/SessionSharingAPIEnums.h"
 #include "records/RecProcess.h"
-#include "tscpp/util/ts_ip.h"
-#include "api/Metrics.h"
+#include "tsutil/ts_ip.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/include/proxy/http/PreWarmManager.h 
b/include/proxy/http/PreWarmManager.h
index f18cec51df..a5cd3ba718 100644
--- a/include/proxy/http/PreWarmManager.h
+++ b/include/proxy/http/PreWarmManager.h
@@ -37,7 +37,7 @@
 #include "iocore/net/NetTimeout.h"
 #include "proxy/Milestones.h"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/include/proxy/http/remap/UrlMapping.h 
b/include/proxy/http/remap/UrlMapping.h
index 1d7f58d342..511e949f42 100644
--- a/include/proxy/http/remap/UrlMapping.h
+++ b/include/proxy/http/remap/UrlMapping.h
@@ -39,7 +39,7 @@
 #include "proxy/hdrs/URL.h"
 #include "proxy/http/remap/RemapPluginInfo.h"
 #include "proxy/http/remap/PluginFactory.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "tscore/List.h"
 
 class NextHopSelectionStrategy;
diff --git a/include/proxy/http/remap/UrlRewrite.h 
b/include/proxy/http/remap/UrlRewrite.h
index 62ac8d048e..86dcb50a07 100644
--- a/include/proxy/http/remap/UrlRewrite.h
+++ b/include/proxy/http/remap/UrlRewrite.h
@@ -28,7 +28,7 @@
 #include "proxy/http/remap/UrlMapping.h"
 #include "proxy/http/remap/UrlMappingPathIndex.h"
 #include "proxy/http/HttpTransact.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "proxy/http/remap/PluginFactory.h"
 #include "proxy/http/remap/NextHopStrategyFactory.h"
 
diff --git a/include/proxy/http2/HTTP2.h b/include/proxy/http2/HTTP2.h
index 6b8b37bbed..e71f5577f6 100644
--- a/include/proxy/http2/HTTP2.h
+++ b/include/proxy/http2/HTTP2.h
@@ -29,7 +29,7 @@
 #include "proxy/hdrs/MIME.h"
 #include "records/RecDefs.h"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/include/proxy/http3/Http3.h b/include/proxy/http3/Http3.h
index 8e91641856..c1b1ff3205 100644
--- a/include/proxy/http3/Http3.h
+++ b/include/proxy/http3/Http3.h
@@ -24,7 +24,7 @@
 #pragma once
 
 #include "tscore/ink_defs.h"
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/include/proxy/logging/LogConfig.h 
b/include/proxy/logging/LogConfig.h
index 3561fa5ade..4fc8fbeba3 100644
--- a/include/proxy/logging/LogConfig.h
+++ b/include/proxy/logging/LogConfig.h
@@ -32,7 +32,7 @@
 #include "proxy/logging/LogObject.h"
 #include "proxy/logging/RolledLogDeleter.h"
 #include "swoc/MemSpan.h"
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/include/records/RecHttp.h b/include/records/RecHttp.h
index 5662a34ec1..f36489dae2 100644
--- a/include/records/RecHttp.h
+++ b/include/records/RecHttp.h
@@ -27,7 +27,7 @@
 #include "swoc/swoc_ip.h"
 
 #include "tscore/ink_inet.h"
-#include "tscpp/util/ts_ip.h"
+#include "tsutil/ts_ip.h"
 #include "tscore/ink_resolver.h"
 #include "ts/apidefs.h"
 #include "ts/apidefs.h"
diff --git a/include/records/RecYAMLDefs.h b/include/records/RecYAMLDefs.h
index 87b029bf2f..5f840afa33 100644
--- a/include/records/RecYAMLDefs.h
+++ b/include/records/RecYAMLDefs.h
@@ -27,7 +27,7 @@
 #include <yaml-cpp/yaml.h>
 
 #include <swoc/BufferWriter.h>
-#include "api/ts_errata.h"
+#include "tsutil/ts_errata.h"
 
 struct CfgNode;
 
diff --git a/include/shared/rpc/RPCRequests.h b/include/shared/rpc/RPCRequests.h
index daf440d72b..d64b9e6916 100644
--- a/include/shared/rpc/RPCRequests.h
+++ b/include/shared/rpc/RPCRequests.h
@@ -21,7 +21,7 @@
 
 #include <string>
 #include <variant>
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include <yaml-cpp/yaml.h>
 #include <tscore/ink_uuid.h>
 
diff --git a/include/ts/ts.h b/include/ts/ts.h
index 6d57e4a25d..fa31683725 100644
--- a/include/ts/ts.h
+++ b/include/ts/ts.h
@@ -35,9 +35,9 @@
 
 #include <type_traits>
 
-#include <api/DbgCtl.h>
-#include <ts/apidefs.h>
-#include <ts/parentselectdefs.h>
+#include "tsutil/DbgCtl.h"
+#include "ts/apidefs.h"
+#include "ts/parentselectdefs.h"
 
 class DiagsConfigState;
 
diff --git a/include/tscore/CryptoHash.h b/include/tscore/CryptoHash.h
index 5f186b7554..17d9b4c8fb 100644
--- a/include/tscore/CryptoHash.h
+++ b/include/tscore/CryptoHash.h
@@ -22,7 +22,7 @@
 
 #pragma once
 
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "tscore/ink_memory.h"
 #include <openssl/evp.h>
 #include <string_view>
diff --git a/include/tscore/Diags.h b/include/tscore/Diags.h
index b1ec9a7ea8..ffb44efda6 100644
--- a/include/tscore/Diags.h
+++ b/include/tscore/Diags.h
@@ -33,8 +33,8 @@
 
 #pragma once
 
-#include <api/DbgCtl.h>
-#include "api/SourceLocation.h"
+#include "tsutil/DbgCtl.h"
+#include "tsutil/SourceLocation.h"
 #include "tscore/DiagsTypes.h"
 #include "tscore/LogMessage.h"
 
diff --git a/include/tscore/DiagsTypes.h b/include/tscore/DiagsTypes.h
index 4bb20a208b..c7616fa8e0 100644
--- a/include/tscore/DiagsTypes.h
+++ b/include/tscore/DiagsTypes.h
@@ -34,17 +34,15 @@
 #include <cstdarg>
 #include <string>
 #include <string_view>
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
+#include "tsutil/SourceLocation.h"
+#include "tsutil/ts_diag_levels.h"
 #include "tscore/BaseLogFile.h"
 #include "tscore/ContFlags.h"
 #include "tscore/ink_apidefs.h"
 #include "tscore/ink_inet.h"
 #include "tscore/ink_mutex.h"
-#include "tscpp/util/Regex.h"
-#include "api/SourceLocation.h"
-
-#include "api/ts_diag_levels.h"
-#include "api/DbgCtl.h"
+#include "tsutil/Regex.h"
 
 #define DIAGS_MAGIC 0x12345678
 #define BYTES_IN_MB 1000000
diff --git a/include/tscore/History.h b/include/tscore/History.h
index 3ef0ab2f2a..e52a48f451 100644
--- a/include/tscore/History.h
+++ b/include/tscore/History.h
@@ -23,7 +23,7 @@
 
 #pragma once
 
-#include "api/SourceLocation.h"
+#include "tsutil/SourceLocation.h"
 #include "tscore/ink_memory.h"
 
 #define NO_REENTRANT         99999
diff --git a/include/tscore/LogMessage.h b/include/tscore/LogMessage.h
index 9a01428d93..9f03085906 100644
--- a/include/tscore/LogMessage.h
+++ b/include/tscore/LogMessage.h
@@ -24,7 +24,7 @@
 #pragma once
 
 #include "tscore/DiagsTypes.h"
-#include "api/SourceLocation.h"
+#include "tsutil/SourceLocation.h"
 #include "tscore/Throttler.h"
 
 #include <atomic>
diff --git a/include/tscore/Regression.h b/include/tscore/Regression.h
index 6c56b62d2d..746155cff3 100644
--- a/include/tscore/Regression.h
+++ b/include/tscore/Regression.h
@@ -24,7 +24,7 @@
 #pragma once
 
 #include "tscore/ink_platform.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "tscore/Diags.h"
 
 //   Each module should provide one or more regression tests
diff --git a/include/api/Assert.h b/include/tsutil/Assert.h
similarity index 89%
rename from include/api/Assert.h
rename to include/tsutil/Assert.h
index 7edee9106a..a536e42640 100644
--- a/include/api/Assert.h
+++ b/include/tsutil/Assert.h
@@ -23,8 +23,8 @@
 
 #pragma once
 
-#include "api/SourceLocation.h"
-#include "swoc/bwf_fwd.h"
+#include "tsutil/SourceLocation.h"
+#include "tsutil/ts_bw_format.h"
 namespace ts
 {
 
@@ -54,3 +54,6 @@ void do_abort(const SourceLocation &loc, const char *expr, 
const char *message =
   if (!(EX)) {                                      \
     ts::do_abort(MakeSourceLocation(), #EX, (MSG)); \
   }
+
+#define fatal_error(format, ...) \
+  ts::do_abort(MakeSourceLocation(), "FATAL", swoc::bwprint(ts::bw_dbg, 
format, __VA_ARGS__).c_str());
diff --git a/include/tscpp/util/Bravo.h b/include/tsutil/Bravo.h
similarity index 98%
rename from include/tscpp/util/Bravo.h
rename to include/tsutil/Bravo.h
index 846ddd269c..c0dd18bf83 100644
--- a/include/tscpp/util/Bravo.h
+++ b/include/tsutil/Bravo.h
@@ -37,10 +37,8 @@
 
 #pragma once
 
-#include "tscpp/util/DenseThreadId.h"
-
-#include "tscore/Diags.h"
-#include "tscore/ink_assert.h"
+#include "tsutil/DenseThreadId.h"
+#include "tsutil/Assert.h"
 
 #include <array>
 #include <atomic>
diff --git a/include/tscpp/util/Convert.h b/include/tsutil/Convert.h
similarity index 100%
rename from include/tscpp/util/Convert.h
rename to include/tsutil/Convert.h
diff --git a/include/api/DbgCtl.h b/include/tsutil/DbgCtl.h
similarity index 98%
rename from include/api/DbgCtl.h
rename to include/tsutil/DbgCtl.h
index b1cddfd220..5513c22d57 100644
--- a/include/api/DbgCtl.h
+++ b/include/tsutil/DbgCtl.h
@@ -23,8 +23,8 @@
 
 #pragma once
 
-#include "api/SourceLocation.h"
-#include "api/ts_diag_levels.h"
+#include "tsutil/SourceLocation.h"
+#include "tsutil/ts_diag_levels.h"
 #include "swoc/BufferWriter.h"
 #include <atomic>
 #include <utility>
diff --git a/include/tscpp/util/DenseThreadId.h b/include/tsutil/DenseThreadId.h
similarity index 86%
rename from include/tscpp/util/DenseThreadId.h
rename to include/tsutil/DenseThreadId.h
index 9189cf7428..7040a98b46 100644
--- a/include/tscpp/util/DenseThreadId.h
+++ b/include/tsutil/DenseThreadId.h
@@ -25,18 +25,7 @@
 
 #pragma once
 
-#if __has_include(<tscore/ink_assert.h>)
-// Included in core.
-#include <tscore/ink_assert.h>
-#define L_Assert ink_assert
-#include <tscore/Diags.h>
-#define L_Fatal Fatal
-#else
-// Should be plugin code.
-#include <ts/ts.h>
-#define L_Assert TSAssert
-#define L_Fatal  TSFatal
-#endif
+#include "tsutil/Assert.h"
 
 #include <cstddef>
 #include <mutex>
@@ -94,7 +83,7 @@ private:
         _inited = true;
       }
       if (_id_stack.size() == _stack_top_idx) {
-        L_Fatal("DenseThreadId:  number of threads exceeded maximum (%u)", 
unsigned(_id_stack.size()));
+        fatal_error("DenseThreadId:  number of threads exceeded maximum {}", 
unsigned(_id_stack.size()));
       }
       val            = _stack_top_idx;
       _stack_top_idx = _id_stack[_stack_top_idx];
diff --git a/include/tscpp/util/Histogram.h b/include/tsutil/Histogram.h
similarity index 100%
rename from include/tscpp/util/Histogram.h
rename to include/tsutil/Histogram.h
diff --git a/include/tscpp/util/LocalBuffer.h b/include/tsutil/LocalBuffer.h
similarity index 98%
rename from include/tscpp/util/LocalBuffer.h
rename to include/tsutil/LocalBuffer.h
index aaaac0a2ad..27a0682122 100644
--- a/include/tscpp/util/LocalBuffer.h
+++ b/include/tsutil/LocalBuffer.h
@@ -23,6 +23,7 @@
 
 #pragma once
 
+#include <cstdint>
 namespace ts
 {
 template <class T = uint8_t, std::size_t EstSizeBound = 1024> class LocalBuffer
diff --git a/include/api/Metrics.h b/include/tsutil/Metrics.h
similarity index 99%
rename from include/api/Metrics.h
rename to include/tsutil/Metrics.h
index 7b68549cfe..50515a5cf3 100644
--- a/include/api/Metrics.h
+++ b/include/tsutil/Metrics.h
@@ -35,7 +35,7 @@
 
 #include "swoc/MemSpan.h"
 
-#include "api/Assert.h"
+#include "tsutil/Assert.h"
 
 namespace ts
 {
diff --git a/include/tscpp/util/PostScript.h b/include/tsutil/PostScript.h
similarity index 100%
rename from include/tscpp/util/PostScript.h
rename to include/tsutil/PostScript.h
diff --git a/include/tscpp/util/Regex.h b/include/tsutil/Regex.h
similarity index 100%
rename from include/tscpp/util/Regex.h
rename to include/tsutil/Regex.h
diff --git a/include/api/SourceLocation.h b/include/tsutil/SourceLocation.h
similarity index 100%
rename from include/api/SourceLocation.h
rename to include/tsutil/SourceLocation.h
diff --git a/include/tscpp/util/Strerror.h b/include/tsutil/Strerror.h
similarity index 99%
rename from include/tscpp/util/Strerror.h
rename to include/tsutil/Strerror.h
index a5d61aa7a4..62df3a25c2 100644
--- a/include/tscpp/util/Strerror.h
+++ b/include/tsutil/Strerror.h
@@ -25,7 +25,7 @@
 
 #pragma once
 
-#include <string.h>
+#include <cstring>
 
 namespace ts
 {
diff --git a/include/tscpp/util/TsSharedMutex.h b/include/tsutil/TsSharedMutex.h
similarity index 85%
rename from include/tscpp/util/TsSharedMutex.h
rename to include/tsutil/TsSharedMutex.h
index 43df4921fb..ccd025c98a 100644
--- a/include/tscpp/util/TsSharedMutex.h
+++ b/include/tsutil/TsSharedMutex.h
@@ -25,20 +25,8 @@
 #pragma once
 
 #include <pthread.h>
-#include <tscpp/util/Strerror.h>
-
-#if __has_include(<tscore/ink_assert.h>)
-// Included in core.
-#include <tscore/ink_assert.h>
-#define L_Assert ink_assert
-#include <tscore/Diags.h>
-#define L_Fatal Fatal
-#else
-// Should be plugin code.
-#include <ts/ts.h>
-#define L_Assert TSAssert
-#define L_Fatal  TSFatal
-#endif
+#include "tsutil/Strerror.h"
+#include "tsutil/Assert.h"
 
 #ifdef X
 #error "X preprocessor symbol defined"
@@ -98,7 +86,7 @@ public:
   void
   unlock()
   {
-    X(L_Assert(_exclusive);)
+    X(debug_assert(_exclusive);)
     X(_exclusive = false;)
 
     _unlock();
@@ -111,9 +99,9 @@ public:
     if (error != 0) {
       _call_fatal("pthread_rwlock_rdlock", &_lock, error);
     }
-    X(L_Assert(_shared >= 0);)
+    X(debug_assert(_shared >= 0);)
     X(++_shared;)
-    X(L_Assert(_shared > 0);)
+    X(debug_assert(_shared > 0);)
   }
 
   bool
@@ -135,9 +123,9 @@ public:
   void
   unlock_shared()
   {
-    X(L_Assert(_shared > 0);)
+    X(debug_assert(_shared > 0);)
     X(--_shared;)
-    X(L_Assert(_shared >= 0);)
+    X(debug_assert(_shared >= 0);)
 
     _unlock();
   }
@@ -181,7 +169,7 @@ private:
   static void
   _call_fatal(char const *func_name, void *ptr, int errnum)
   {
-    L_Fatal("%s(%p) failed: %s (%d)", func_name, ptr, 
Strerror(errnum).c_str(), errnum);
+    fatal_error("{}({}) failed: {} ({})", func_name, ptr, 
Strerror(errnum).c_str(), errnum);
   }
 
   // In debug builds, make sure shared vs. exclusive locks and unlocks are 
properly paired.
@@ -193,5 +181,3 @@ private:
 } // end namespace ts
 
 #undef X
-#undef L_Assert
-#undef L_Fatal
diff --git a/include/tscpp/util/YamlCfg.h b/include/tsutil/YamlCfg.h
similarity index 100%
rename from include/tscpp/util/YamlCfg.h
rename to include/tsutil/YamlCfg.h
diff --git a/include/api/ts_bw_format.h b/include/tsutil/ts_bw_format.h
similarity index 100%
rename from include/api/ts_bw_format.h
rename to include/tsutil/ts_bw_format.h
diff --git a/include/api/ts_diag_levels.h b/include/tsutil/ts_diag_levels.h
similarity index 100%
rename from include/api/ts_diag_levels.h
rename to include/tsutil/ts_diag_levels.h
diff --git a/include/api/ts_errata.h b/include/tsutil/ts_errata.h
similarity index 97%
rename from include/api/ts_errata.h
rename to include/tsutil/ts_errata.h
index d5590deb3c..427983bbbb 100644
--- a/include/api/ts_errata.h
+++ b/include/tsutil/ts_errata.h
@@ -23,9 +23,9 @@ limitations under the License.
 
 #include <utility>
 
-#include "api/ts_diag_levels.h"
+#include "tsutil/ts_diag_levels.h"
 #include "swoc/TextView.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "swoc/Errata.h"
 
 static constexpr swoc::Errata::Severity ERRATA_DIAG{DL_Diag};
diff --git a/include/tscpp/util/ts_ip.h b/include/tsutil/ts_ip.h
similarity index 100%
rename from include/tscpp/util/ts_ip.h
rename to include/tsutil/ts_ip.h
diff --git a/include/tscpp/util/ts_meta.h b/include/tsutil/ts_meta.h
similarity index 100%
rename from include/tscpp/util/ts_meta.h
rename to include/tsutil/ts_meta.h
diff --git a/include/tscpp/util/ts_time_parser.h 
b/include/tsutil/ts_time_parser.h
similarity index 97%
rename from include/tscpp/util/ts_time_parser.h
rename to include/tsutil/ts_time_parser.h
index aeb11d3879..bb62970fe9 100644
--- a/include/tscpp/util/ts_time_parser.h
+++ b/include/tsutil/ts_time_parser.h
@@ -20,7 +20,7 @@
 
 #pragma once
 
-#include "tscpp/util/ts_unit_parser.h"
+#include "tsutil/ts_unit_parser.h"
 
 namespace ts
 {
diff --git a/include/tscpp/util/ts_unit_parser.h 
b/include/tsutil/ts_unit_parser.h
similarity index 100%
rename from include/tscpp/util/ts_unit_parser.h
rename to include/tsutil/ts_unit_parser.h
diff --git a/plugins/conf_remap/CMakeLists.txt 
b/plugins/conf_remap/CMakeLists.txt
index c4dd4f01b8..37d4dd80e8 100644
--- a/plugins/conf_remap/CMakeLists.txt
+++ b/plugins/conf_remap/CMakeLists.txt
@@ -16,4 +16,3 @@
 #######################
 
 add_atsplugin(conf_remap conf_remap.cc)
-target_link_libraries(conf_remap PRIVATE ts::tscpputil)
diff --git a/plugins/conf_remap/conf_remap.cc b/plugins/conf_remap/conf_remap.cc
index ad13a627d7..3f9e42fdea 100644
--- a/plugins/conf_remap/conf_remap.cc
+++ b/plugins/conf_remap/conf_remap.cc
@@ -19,7 +19,7 @@
 #include "ts/ts.h"
 #include "ts/remap.h"
 #include "tscore/ink_defs.h"
-#include "tscpp/util/YamlCfg.h"
+#include "tsutil/YamlCfg.h"
 #include <swoc/bwf_base.h>
 
 #include <cstdio>
diff --git a/plugins/experimental/maxmind_acl/CMakeLists.txt 
b/plugins/experimental/maxmind_acl/CMakeLists.txt
index 8173f6f7e0..0ce160a7f6 100644
--- a/plugins/experimental/maxmind_acl/CMakeLists.txt
+++ b/plugins/experimental/maxmind_acl/CMakeLists.txt
@@ -20,7 +20,7 @@ if(maxminddb_FOUND)
   add_atsplugin(maxmind_acl maxmind_acl.cc mmdb.cc)
 
   target_link_libraries(
-    maxmind_acl PRIVATE libswoc::libswoc ts::tscore ts::tsapicore 
yaml-cpp::yaml-cpp maxminddb::maxminddb PCRE::PCRE
+    maxmind_acl PRIVATE libswoc::libswoc ts::tscore ts::tsutil 
yaml-cpp::yaml-cpp maxminddb::maxminddb PCRE::PCRE
   )
 
 else()
diff --git a/plugins/experimental/money_trace/money_trace.cc 
b/plugins/experimental/money_trace/money_trace.cc
index 5d24a1852e..ff984128be 100644
--- a/plugins/experimental/money_trace/money_trace.cc
+++ b/plugins/experimental/money_trace/money_trace.cc
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "ts/ts.h"
 #include "ts/remap.h"
 #include "ts/remap_version.h"
diff --git a/plugins/experimental/sslheaders/CMakeLists.txt 
b/plugins/experimental/sslheaders/CMakeLists.txt
index c837fab460..33865b71ac 100644
--- a/plugins/experimental/sslheaders/CMakeLists.txt
+++ b/plugins/experimental/sslheaders/CMakeLists.txt
@@ -16,12 +16,12 @@
 #######################
 
 add_library(sslhdr STATIC expand.cc util.cc)
-target_link_libraries(sslhdr PRIVATE OpenSSL::SSL ts::tsapicore)
+target_link_libraries(sslhdr PRIVATE OpenSSL::SSL ts::tsutil)
 set_target_properties(sslhdr PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
 
 if(BUILD_TESTING)
   add_executable(test_sslhdr unit_tests/unit_test_main.cc 
unit_tests/test_sslheaders.cc)
-  target_link_libraries(test_sslhdr PRIVATE sslhdr catch2::catch2 OpenSSL::SSL 
ts::tsapicore)
+  target_link_libraries(test_sslhdr PRIVATE sslhdr catch2::catch2 OpenSSL::SSL 
ts::tsutil)
 endif()
 
 add_atsplugin(sslheaders sslheaders.cc)
diff --git a/plugins/experimental/tls_bridge/CMakeLists.txt 
b/plugins/experimental/tls_bridge/CMakeLists.txt
index 1e7797900c..b11aca2ee3 100644
--- a/plugins/experimental/tls_bridge/CMakeLists.txt
+++ b/plugins/experimental/tls_bridge/CMakeLists.txt
@@ -17,4 +17,4 @@
 
 add_atsplugin(tls_bridge tls_bridge.cc)
 
-target_link_libraries(tls_bridge PRIVATE libswoc::libswoc ts::tscpputil)
+target_link_libraries(tls_bridge PRIVATE libswoc::libswoc)
diff --git a/plugins/experimental/tls_bridge/tls_bridge.cc 
b/plugins/experimental/tls_bridge/tls_bridge.cc
index 2799bbe85e..f80f7c2d24 100644
--- a/plugins/experimental/tls_bridge/tls_bridge.cc
+++ b/plugins/experimental/tls_bridge/tls_bridge.cc
@@ -21,7 +21,7 @@
 
 #include "ts/ts.h"
 #include "swoc/TextView.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 
 using swoc::TextView;
 
diff --git a/plugins/experimental/uri_signing/parse.cc 
b/plugins/experimental/uri_signing/parse.cc
index 2885c9f414..52bce8bbcf 100644
--- a/plugins/experimental/uri_signing/parse.cc
+++ b/plugins/experimental/uri_signing/parse.cc
@@ -26,7 +26,7 @@
 #include <jansson.h>
 #include <cstring>
 #include <cinttypes>
-#include <tscpp/util/PostScript.h>
+#include <tsutil/PostScript.h>
 
 cjose_jws_t *
 get_jws_from_uri(const char *uri, size_t uri_ct, const char *paramName, char 
*strip_uri, size_t buff_ct, size_t *strip_ct)
diff --git a/plugins/remap_stats/remap_stats.cc 
b/plugins/remap_stats/remap_stats.cc
index 9a6515ea49..82925798c3 100644
--- a/plugins/remap_stats/remap_stats.cc
+++ b/plugins/remap_stats/remap_stats.cc
@@ -21,7 +21,7 @@
 
 #include "tscore/ink_config.h"
 #include "tscore/ink_defs.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #include "ts/ts.h"
 
diff --git a/plugins/s3_auth/s3_auth.cc b/plugins/s3_auth/s3_auth.cc
index a849cabf94..47d623fc79 100644
--- a/plugins/s3_auth/s3_auth.cc
+++ b/plugins/s3_auth/s3_auth.cc
@@ -47,7 +47,7 @@
 #include <ts/ts.h>
 #include <ts/remap.h>
 #include <ts/remap_version.h>
-#include <tscpp/util/TsSharedMutex.h>
+#include <tsutil/TsSharedMutex.h>
 #include "tscore/ink_config.h"
 #include "swoc/TextView.h"
 
diff --git a/plugins/s3_auth/unit_tests/CMakeLists.txt 
b/plugins/s3_auth/unit_tests/CMakeLists.txt
index c0aca1d62e..9616898bff 100644
--- a/plugins/s3_auth/unit_tests/CMakeLists.txt
+++ b/plugins/s3_auth/unit_tests/CMakeLists.txt
@@ -17,7 +17,7 @@
 
 add_executable(test_s3_auth test_aws_auth_v4.cc 
"${PROJECT_SOURCE_DIR}/aws_auth_v4.cc")
 
-target_link_libraries(test_s3_auth PRIVATE catch2::catch2 OpenSSL::Crypto 
ts::tsapicore)
+target_link_libraries(test_s3_auth PRIVATE catch2::catch2 OpenSSL::Crypto 
ts::tsutil)
 
 target_compile_definitions(test_s3_auth PRIVATE AWS_AUTH_V4_UNIT_TEST)
 
diff --git a/plugins/slice/unit-tests/CMakeLists.txt 
b/plugins/slice/unit-tests/CMakeLists.txt
index 5e2b341c8b..9ddec81ee6 100644
--- a/plugins/slice/unit-tests/CMakeLists.txt
+++ b/plugins/slice/unit-tests/CMakeLists.txt
@@ -17,15 +17,15 @@
 
 add_executable(test_content_range test_content_range.cc 
${PROJECT_SOURCE_DIR}/ContentRange.cc)
 target_compile_definitions(test_content_range PRIVATE UNITTEST)
-target_link_libraries(test_content_range PRIVATE catch2::catch2 ts::tsapicore)
+target_link_libraries(test_content_range PRIVATE catch2::catch2 ts::tsutil)
 add_test(NAME test_content_range COMMAND test_content_range)
 
 add_executable(test_range test_range.cc ${PROJECT_SOURCE_DIR}/Range.cc)
 target_compile_definitions(test_range PRIVATE UNITTEST)
-target_link_libraries(test_range PRIVATE catch2::catch2 ts::tsapicore)
+target_link_libraries(test_range PRIVATE catch2::catch2 ts::tsutil)
 add_test(NAME test_range COMMAND test_range)
 
 add_executable(test_config test_config.cc ${PROJECT_SOURCE_DIR}/Config.cc)
 target_compile_definitions(test_config PRIVATE UNITTEST)
-target_link_libraries(test_config PRIVATE PCRE::PCRE catch2::catch2 
ts::tsapicore)
+target_link_libraries(test_config PRIVATE PCRE::PCRE catch2::catch2 ts::tsutil)
 add_test(NAME test_config COMMAND test_config)
diff --git a/plugins/stats_over_http/stats_over_http.cc 
b/plugins/stats_over_http/stats_over_http.cc
index 2a324853c9..b58c668322 100644
--- a/plugins/stats_over_http/stats_over_http.cc
+++ b/plugins/stats_over_http/stats_over_http.cc
@@ -46,7 +46,7 @@
 
 #include "swoc/swoc_ip.h"
 
-#include <tscpp/util/ts_ip.h>
+#include <tsutil/ts_ip.h>
 
 #include "tscore/ink_config.h"
 #if HAVE_BROTLI_ENCODE_H
diff --git a/plugins/xdebug/xdebug.cc b/plugins/xdebug/xdebug.cc
index 363c384348..7a818cc8cd 100644
--- a/plugins/xdebug/xdebug.cc
+++ b/plugins/xdebug/xdebug.cc
@@ -34,7 +34,7 @@
 #include <ts/ts.h>
 #include "ts/experimental.h"
 #include "tscore/ink_defs.h"
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 #include "swoc/TextView.h"
 #include "tscpp/api/Cleanup.h"
 
diff --git a/src/api/CMakeLists.txt b/src/api/CMakeLists.txt
index 61ee780ed7..3b131c3f15 100644
--- a/src/api/CMakeLists.txt
+++ b/src/api/CMakeLists.txt
@@ -50,38 +50,8 @@ target_link_libraries(
   PRIVATE ts::proxy ts::hdrs ts::tscore
 )
 
-# Items that even tscore can depend on
-set(TSAPICORE_PUBLIC_HEADERS
-    ${PROJECT_SOURCE_DIR}/include/api/Metrics.h
-    ${PROJECT_SOURCE_DIR}/include/api/SourceLocation.h
-    ${PROJECT_SOURCE_DIR}/include/api/DbgCtl.h
-    ${PROJECT_SOURCE_DIR}/include/api/APIHook.h
-    ${PROJECT_SOURCE_DIR}/include/api/APIHooks.h
-    ${PROJECT_SOURCE_DIR}/include/api/FeatureAPIHooks.h
-    ${PROJECT_SOURCE_DIR}/include/api/InkAPIInternal.h
-    ${PROJECT_SOURCE_DIR}/include/api/LifecycleAPIHooks.h
-    ${PROJECT_SOURCE_DIR}/include/api/Metrics.h
-    ${PROJECT_SOURCE_DIR}/include/api/SourceLocation.h
-    ${PROJECT_SOURCE_DIR}/include/api/ts_bw_format.h
-    ${PROJECT_SOURCE_DIR}/include/api/ts_diag_levels.h
-    ${PROJECT_SOURCE_DIR}/include/api/ts_errata.h
-)
-add_library(tsapicore SHARED Assert.cc Metrics.cc DbgCtl.cc SourceLocation.cc 
ts_diags.cc)
-add_library(ts::tsapicore ALIAS tsapicore)
-set_target_properties(tsapicore PROPERTIES POSITION_INDEPENDENT_CODE TRUE 
PUBLIC_HEADER "${TSAPICORE_PUBLIC_HEADERS}")
-target_link_libraries(tsapicore PUBLIC libswoc)
-
 install(TARGETS tsapi tsapibackend PUBLIC_HEADER DESTINATION 
${CMAKE_INSTALL_INCLUDEDIR}/ts)
-install(TARGETS tsapicore PUBLIC_HEADER DESTINATION 
${CMAKE_INSTALL_INCLUDEDIR}/api)
 
 if(APPLE)
   target_link_options(tsapi PRIVATE -undefined dynamic_lookup)
 endif()
-
-if(BUILD_TESTING)
-  add_executable(test_ApiCore unit_tests/test_Metrics.cc)
-
-  target_link_libraries(test_ApiCore PRIVATE tscore tsapicore catch2::catch2)
-
-  add_test(NAME test_ApiCore COMMAND $<TARGET_FILE:test_ApiCore>)
-endif()
diff --git a/src/api/InkAPI.cc b/src/api/InkAPI.cc
index d70ebe303c..17429cf0a6 100644
--- a/src/api/InkAPI.cc
+++ b/src/api/InkAPI.cc
@@ -33,7 +33,7 @@
 #include "tscore/PluginUserArgs.h"
 #include "tscore/Layout.h"
 #include "tscore/Diags.h"
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 #include "tscore/Version.h"
 #include "api/InkAPIInternal.h"
diff --git a/src/iocore/aio/P_AIO.h b/src/iocore/aio/P_AIO.h
index 1cd0556e05..499ed57870 100644
--- a/src/iocore/aio/P_AIO.h
+++ b/src/iocore/aio/P_AIO.h
@@ -37,7 +37,7 @@
 #include "iocore/io_uring/IO_URING.h"
 #endif
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/src/iocore/cache/CacheEvacuateDocVC.cc 
b/src/iocore/cache/CacheEvacuateDocVC.cc
index e2722e4975..44b9d40132 100644
--- a/src/iocore/cache/CacheEvacuateDocVC.cc
+++ b/src/iocore/cache/CacheEvacuateDocVC.cc
@@ -38,7 +38,7 @@
 #include "tscore/ink_assert.h"
 
 // ts
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
 
 namespace
 {
diff --git a/src/iocore/cache/CacheVC.cc b/src/iocore/cache/CacheVC.cc
index 086c463972..23c579e0ba 100644
--- a/src/iocore/cache/CacheVC.cc
+++ b/src/iocore/cache/CacheVC.cc
@@ -40,7 +40,7 @@
 
 // tsapi
 #if DEBUG
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 #endif
 #include "tscore/Version.h"
 
@@ -61,7 +61,7 @@
 #include "tscore/Ptr.h"
 
 // ts
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
 
 #include <cstddef>
 #include <cstdint>
diff --git a/src/iocore/cache/P_CacheInternal.h 
b/src/iocore/cache/P_CacheInternal.h
index 012b6f23d6..8879ff80aa 100644
--- a/src/iocore/cache/P_CacheInternal.h
+++ b/src/iocore/cache/P_CacheInternal.h
@@ -30,7 +30,7 @@
 #include "proxy/hdrs/HTTP.h"
 #include "P_CacheHttp.h"
 #include "P_CacheHosting.h"
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 #include "iocore/cache/CacheVC.h"
 #include "iocore/cache/CacheEvacuateDocVC.h"
diff --git a/src/iocore/cache/unit_tests/test_CacheVol.cc 
b/src/iocore/cache/unit_tests/test_CacheVol.cc
index a66addc03c..a139dec018 100644
--- a/src/iocore/cache/unit_tests/test_CacheVol.cc
+++ b/src/iocore/cache/unit_tests/test_CacheVol.cc
@@ -27,7 +27,7 @@
 #include "../P_CacheHosting.h"
 
 #include "tscore/Diags.h"
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 // Required by main.h
 int cache_vols            = 1;
diff --git a/src/iocore/dns/CMakeLists.txt b/src/iocore/dns/CMakeLists.txt
index 464d075ad1..987cdb34ab 100644
--- a/src/iocore/dns/CMakeLists.txt
+++ b/src/iocore/dns/CMakeLists.txt
@@ -28,5 +28,5 @@ target_link_libraries(
   inkdns
   PUBLIC libswoc::libswoc ts::inkevent ts::inkhostdb
          #ts::inknet cyclic dependency
-         ts::proxy ts::tsapicore ts::tscore
+         ts::proxy ts::tsutil ts::tscore
 )
diff --git a/src/iocore/dns/P_DNSProcessor.h b/src/iocore/dns/P_DNSProcessor.h
index 978341d282..4d34b48d8b 100644
--- a/src/iocore/dns/P_DNSProcessor.h
+++ b/src/iocore/dns/P_DNSProcessor.h
@@ -44,11 +44,11 @@
 #include "tscore/PendingAction.h"
 #include "tscore/Ptr.h"
 
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
 
 #include <swoc/IPEndpoint.h>
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/src/iocore/eventsystem/CMakeLists.txt 
b/src/iocore/eventsystem/CMakeLists.txt
index 9bd5aeabf4..5488e19278 100644
--- a/src/iocore/eventsystem/CMakeLists.txt
+++ b/src/iocore/eventsystem/CMakeLists.txt
@@ -42,7 +42,7 @@ target_link_libraries(
   inkevent
   PUBLIC ts::records ts::tscore
   PRIVATE libswoc::libswoc resolv::resolv # transitive
-          tscpputil # transitive
+          tsutil # transitive
           yaml-cpp::yaml-cpp # transitive
 )
 
diff --git a/src/iocore/hostdb/HostDB.cc b/src/iocore/hostdb/HostDB.cc
index 6c790f19bd..a1e8d32623 100644
--- a/src/iocore/hostdb/HostDB.cc
+++ b/src/iocore/hostdb/HostDB.cc
@@ -22,7 +22,7 @@
  */
 
 #include "swoc/swoc_file.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #include "P_HostDB.h"
 #include "tscore/Layout.h"
diff --git a/src/iocore/hostdb/P_HostDBProcessor.h 
b/src/iocore/hostdb/P_HostDBProcessor.h
index bdfeb1d26f..c47e37c0cf 100644
--- a/src/iocore/hostdb/P_HostDBProcessor.h
+++ b/src/iocore/hostdb/P_HostDBProcessor.h
@@ -30,12 +30,12 @@
 #include <unordered_map>
 
 #include "swoc/swoc_file.h"
-#include <tscpp/util/TsSharedMutex.h>
+#include <tsutil/TsSharedMutex.h>
 
 #include "iocore/hostdb/HostDBProcessor.h"
 #include "P_RefCountCache.h"
 #include "tscore/PendingAction.h"
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/src/iocore/hostdb/P_RefCountCache.h 
b/src/iocore/hostdb/P_RefCountCache.h
index cad9ad6cf9..d379c260e9 100644
--- a/src/iocore/hostdb/P_RefCountCache.h
+++ b/src/iocore/hostdb/P_RefCountCache.h
@@ -33,9 +33,9 @@
 #include "tscore/ink_hrtime.h"
 
 #include "tscore/Version.h"
-#include "tscpp/util/TsSharedMutex.h"
+#include "tsutil/TsSharedMutex.h"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 #include <cstdint>
 #include <unistd.h>
 
diff --git a/src/iocore/io_uring/CMakeLists.txt 
b/src/iocore/io_uring/CMakeLists.txt
index 5919bf2893..68018c2387 100644
--- a/src/iocore/io_uring/CMakeLists.txt
+++ b/src/iocore/io_uring/CMakeLists.txt
@@ -21,11 +21,11 @@ add_library(ts::inkuring ALIAS inkuring)
 target_link_libraries(
   inkuring
   PUBLIC ts::tscore uring
-  PRIVATE ts::tsapicore
+  PRIVATE ts::tsutil
 )
 
 add_executable(test_iouring unit_tests/test_diskIO.cc)
-target_link_libraries(test_iouring PRIVATE inkuring libswoc::libswoc tscpputil 
catch2::catch2)
+target_link_libraries(test_iouring PRIVATE inkuring libswoc::libswoc tsutil 
catch2::catch2)
 
 target_include_directories(test_iouring PRIVATE ${CATCH_INCLUDE_DIR})
 
diff --git a/src/iocore/io_uring/io_uring.cc b/src/iocore/io_uring/io_uring.cc
index d80d234165..52680f232d 100644
--- a/src/iocore/io_uring/io_uring.cc
+++ b/src/iocore/io_uring/io_uring.cc
@@ -32,7 +32,7 @@ Linux io_uring helper library
 #include "tscore/ink_hrtime.h"
 #include "tscore/Diags.h"
 
-#include <api/Metrics.h>
+#include <tsutil/Metrics.h>
 using ts::Metrics;
 
 std::atomic<int> main_wq_fd;
diff --git a/src/iocore/io_uring/unit_tests/test_diskIO.cc 
b/src/iocore/io_uring/unit_tests/test_diskIO.cc
index c6a6124d9a..e6fceb042a 100644
--- a/src/iocore/io_uring/unit_tests/test_diskIO.cc
+++ b/src/iocore/io_uring/unit_tests/test_diskIO.cc
@@ -35,7 +35,7 @@
 #include <arpa/inet.h>
 #include "tscore/ink_hrtime.h"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 using ts::Metrics;
 
 swoc::file::path
diff --git a/src/iocore/net/CMakeLists.txt b/src/iocore/net/CMakeLists.txt
index 2047ec4723..9f714b956b 100644
--- a/src/iocore/net/CMakeLists.txt
+++ b/src/iocore/net/CMakeLists.txt
@@ -107,7 +107,7 @@ target_link_libraries(
          OpenSSL::Crypto
          OpenSSL::SSL
          ts::tsapibackend
-  PRIVATE ts::tsapicore yaml-cpp::yaml-cpp
+  PRIVATE ts::tsutil yaml-cpp::yaml-cpp
 )
 
 # Is this necessary?
diff --git a/src/iocore/net/ConnectionTracker.cc 
b/src/iocore/net/ConnectionTracker.cc
index f90a3ef7d1..54f55824ca 100644
--- a/src/iocore/net/ConnectionTracker.cc
+++ b/src/iocore/net/ConnectionTracker.cc
@@ -26,7 +26,7 @@
 #include "P_Net.h" // For Metrics.
 #include "iocore/net/ConnectionTracker.h"
 #include "records/RecCore.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "../../records/P_RecDefs.h"
 
 using namespace std::literals;
diff --git a/src/iocore/net/P_Net.h b/src/iocore/net/P_Net.h
index f2f28b66eb..ccaa9b0577 100644
--- a/src/iocore/net/P_Net.h
+++ b/src/iocore/net/P_Net.h
@@ -29,7 +29,7 @@
 **************************************************************************/
 #pragma once
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 // Net Stats
 using ts::Metrics;
diff --git a/src/iocore/net/P_SSLUtils.h b/src/iocore/net/P_SSLUtils.h
index 50a1429408..e06a0448b2 100644
--- a/src/iocore/net/P_SSLUtils.h
+++ b/src/iocore/net/P_SSLUtils.h
@@ -29,7 +29,7 @@
 #endif
 #include <openssl/ssl.h>
 
-#include "api/ts_errata.h"
+#include "tsutil/ts_errata.h"
 
 #include "tscore/ink_config.h"
 #include "tscore/Diags.h"
diff --git a/src/iocore/net/P_Socks.h b/src/iocore/net/P_Socks.h
index 4b2af3d7b7..66ee0e4002 100644
--- a/src/iocore/net/P_Socks.h
+++ b/src/iocore/net/P_Socks.h
@@ -28,7 +28,7 @@
 
 #include "../eventsystem/P_EventSystem.h"
 #include "iocore/net/Socks.h"
-#include "api/ts_errata.h"
+#include "tsutil/ts_errata.h"
 
 #include "proxy/ParentSelection.h"
 
diff --git a/src/iocore/net/P_TLSKeyLogger.h b/src/iocore/net/P_TLSKeyLogger.h
index 87515e21da..e62c090320 100644
--- a/src/iocore/net/P_TLSKeyLogger.h
+++ b/src/iocore/net/P_TLSKeyLogger.h
@@ -28,7 +28,7 @@
 
 #include <memory>
 #include <mutex>
-#include <tscpp/util/TsSharedMutex.h>
+#include <tsutil/TsSharedMutex.h>
 
 /** A class for handling TLS secrets logging. */
 class TLSKeyLogger
diff --git a/src/iocore/net/SSLCertLookup.cc b/src/iocore/net/SSLCertLookup.cc
index 701f972d1b..e5132d7d18 100644
--- a/src/iocore/net/SSLCertLookup.cc
+++ b/src/iocore/net/SSLCertLookup.cc
@@ -31,7 +31,7 @@
 
 #include "tscore/TestBox.h"
 
-#include "tscpp/util/Convert.h"
+#include "tsutil/Convert.h"
 
 #include "P_SSLUtils.h"
 
diff --git a/src/iocore/net/SSLSNIConfig.cc b/src/iocore/net/SSLSNIConfig.cc
index 961dc8487b..ac616c2876 100644
--- a/src/iocore/net/SSLSNIConfig.cc
+++ b/src/iocore/net/SSLSNIConfig.cc
@@ -40,8 +40,8 @@
 #include "tscore/ink_memory.h"
 #include "tscore/Layout.h"
 
-#include "tscpp/util/ts_ip.h"
-#include "tscpp/util/Convert.h"
+#include "tsutil/ts_ip.h"
+#include "tsutil/Convert.h"
 
 #include "swoc/TextView.h"
 
diff --git a/src/iocore/net/SSLSessionCache.h b/src/iocore/net/SSLSessionCache.h
index d41d75f8b0..574fe72423 100644
--- a/src/iocore/net/SSLSessionCache.h
+++ b/src/iocore/net/SSLSessionCache.h
@@ -30,7 +30,7 @@
 #include "ts/apidefs.h"
 #include <openssl/ssl.h>
 #include <mutex>
-#include <tscpp/util/TsSharedMutex.h>
+#include <tsutil/TsSharedMutex.h>
 
 #define SSL_MAX_SESSION_SIZE      256
 #define SSL_MAX_ORIG_SESSION_SIZE 4096
diff --git a/src/iocore/net/SSLStats.h b/src/iocore/net/SSLStats.h
index 4b46d4876b..46d6a85ebb 100644
--- a/src/iocore/net/SSLStats.h
+++ b/src/iocore/net/SSLStats.h
@@ -28,7 +28,7 @@
 #include "records/RecProcess.h"
 #include "iocore/net/SSLDiags.h"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/src/iocore/net/YamlSNIConfig.cc b/src/iocore/net/YamlSNIConfig.cc
index 05dcd5ee57..e7c6919453 100644
--- a/src/iocore/net/YamlSNIConfig.cc
+++ b/src/iocore/net/YamlSNIConfig.cc
@@ -42,7 +42,7 @@
 #include "P_SSLConfig.h"
 #include "P_SSLNetVConnection.h"
 
-#include "tscpp/util/ts_ip.h"
+#include "tsutil/ts_ip.h"
 
 #include "swoc/bwf_fwd.h"
 #include "tscore/Diags.h"
diff --git a/src/mgmt/rpc/CMakeLists.txt b/src/mgmt/rpc/CMakeLists.txt
index 1564e2a217..f9d5674405 100644
--- a/src/mgmt/rpc/CMakeLists.txt
+++ b/src/mgmt/rpc/CMakeLists.txt
@@ -26,8 +26,8 @@ set_target_properties(jsonrpc_protocol PROPERTIES 
POSITION_INDEPENDENT_CODE TRUE
 
 target_link_libraries(
   jsonrpc_protocol
-  PUBLIC tscpputil ts::tscore
-  PRIVATE ts::tsapicore
+  PUBLIC ts::tscore
+  PRIVATE ts::tsutil
 )
 
 add_library(
@@ -46,12 +46,12 @@ add_library(ts::rpcpublichandlers ALIAS rpcpublichandlers)
 target_link_libraries(
   rpcpublichandlers
   PUBLIC ts::overridable_txn_vars ts::tscore
-  PRIVATE ts::inkcache ts::proxy ts::tsapicore ts::tsapibackend
+  PRIVATE ts::inkcache ts::proxy ts::tsutil ts::tsapibackend
 )
 
 if(BUILD_TESTING)
   add_executable(test_jsonrpc jsonrpc/unit_tests/unit_test_main.cc 
jsonrpc/unit_tests/test_basic_protocol.cc)
-  target_link_libraries(test_jsonrpc ts::tsapicore catch2::catch2 
ts::jsonrpc_protocol libswoc::libswoc)
+  target_link_libraries(test_jsonrpc ts::tsutil catch2::catch2 
ts::jsonrpc_protocol libswoc::libswoc)
   add_test(NAME test_jsonrpc COMMAND test_jsonrpc)
 
   add_executable(
diff --git a/src/mgmt/rpc/handlers/config/Configuration.cc 
b/src/mgmt/rpc/handlers/config/Configuration.cc
index 4d2ae04401..773532553d 100644
--- a/src/mgmt/rpc/handlers/config/Configuration.cc
+++ b/src/mgmt/rpc/handlers/config/Configuration.cc
@@ -28,7 +28,7 @@
 #include "mgmt/config/FileManager.h"
 
 #include "mgmt/rpc/handlers/common/RecordsUtils.h"
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 
 namespace utils = rpc::handlers::records::utils;
 
diff --git a/src/mgmt/rpc/jsonrpc/unit_tests/test_basic_protocol.cc 
b/src/mgmt/rpc/jsonrpc/unit_tests/test_basic_protocol.cc
index dc25434b1e..117c597f20 100644
--- a/src/mgmt/rpc/jsonrpc/unit_tests/test_basic_protocol.cc
+++ b/src/mgmt/rpc/jsonrpc/unit_tests/test_basic_protocol.cc
@@ -20,7 +20,7 @@
 
 #include <catch.hpp> /* catch unit-test framework */
 
-#include <api/ts_bw_format.h>
+#include <tsutil/ts_bw_format.h>
 
 #include "mgmt/rpc/jsonrpc/JsonRPCManager.h"
 #include "mgmt/rpc/jsonrpc/JsonRPC.h"
diff --git a/src/mgmt/rpc/server/IPCSocketServer.cc 
b/src/mgmt/rpc/server/IPCSocketServer.cc
index 8f393fa132..3b6e3b568f 100644
--- a/src/mgmt/rpc/server/IPCSocketServer.cc
+++ b/src/mgmt/rpc/server/IPCSocketServer.cc
@@ -35,7 +35,7 @@
 #include <iostream>
 
 #include "tscore/Diags.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "records/RecProcess.h"
 #include "tscore/ink_sock.h"
 
diff --git a/src/proxy/CMakeLists.txt b/src/proxy/CMakeLists.txt
index c38e0e188e..508ba7c1d8 100644
--- a/src/proxy/CMakeLists.txt
+++ b/src/proxy/CMakeLists.txt
@@ -46,7 +46,7 @@ endif()
 
 target_link_libraries(
   proxy
-  PUBLIC ts::inkcache ts::inkevent ts::tsapicore ts::tscore
+  PUBLIC ts::inkcache ts::inkevent ts::tsutil ts::tscore
   PRIVATE ts::jsonrpc_protocol ts::inkutils ts::tsapibackend
 )
 
diff --git a/src/proxy/CacheControl.cc b/src/proxy/CacheControl.cc
index 7cdbac065b..63a777b216 100644
--- a/src/proxy/CacheControl.cc
+++ b/src/proxy/CacheControl.cc
@@ -39,7 +39,7 @@
 #include "proxy/hdrs/HTTP.h"
 #include "proxy/http/HttpConfig.h"
 #include "../iocore/cache/P_Cache.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 
 static const char modulePrefix[] = "[CacheControl]";
 
diff --git a/src/proxy/HostStatus.cc b/src/proxy/HostStatus.cc
index a64439e485..121770fbe9 100644
--- a/src/proxy/HostStatus.cc
+++ b/src/proxy/HostStatus.cc
@@ -21,7 +21,7 @@
   limitations under the License.
  */
 #include <fstream>
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "proxy/HostStatus.h"
 #include "iocore/eventsystem/Tasks.h"
 
diff --git a/src/proxy/IPAllow.cc b/src/proxy/IPAllow.cc
index a716377613..1e134d897b 100644
--- a/src/proxy/IPAllow.cc
+++ b/src/proxy/IPAllow.cc
@@ -28,7 +28,7 @@
 
 #include "proxy/IPAllow.h"
 #include "tscore/Filenames.h"
-#include "api/ts_errata.h"
+#include "tsutil/ts_errata.h"
 
 #include "swoc/Vectray.h"
 #include "swoc/BufferWriter.h"
@@ -36,7 +36,7 @@
 #include "swoc/bwf_ex.h"
 #include "swoc/bwf_ip.h"
 
-#include "tscpp/util/YamlCfg.h"
+#include "tsutil/YamlCfg.h"
 
 using swoc::TextView;
 
diff --git a/src/proxy/hdrs/CMakeLists.txt b/src/proxy/hdrs/CMakeLists.txt
index 8906734da1..9e0bc6e10f 100644
--- a/src/proxy/hdrs/CMakeLists.txt
+++ b/src/proxy/hdrs/CMakeLists.txt
@@ -35,7 +35,7 @@ add_library(ts::hdrs ALIAS hdrs)
 target_link_libraries(
   hdrs
   PUBLIC libswoc::libswoc ts::tscore
-  PRIVATE ts::inkevent ts::tsapicore
+  PRIVATE ts::inkevent ts::tsutil
 )
 
 if(BUILD_TESTING)
@@ -55,6 +55,6 @@ if(BUILD_TESTING)
   add_test(NAME test_proxy_hdrs COMMAND test_proxy_hdrs)
 
   add_executable(test_proxy_hdrs_xpack XPACK.cc HuffmanCodec.cc 
unit_tests/test_XPACK.cc)
-  target_link_libraries(test_proxy_hdrs_xpack PRIVATE ts::tscore ts::tsapicore 
tscpputil libswoc catch2::catch2)
+  target_link_libraries(test_proxy_hdrs_xpack PRIVATE ts::tscore ts::tsutil 
libswoc catch2::catch2)
   add_test(NAME test_proxy_hdrs_xpack COMMAND test_proxy_hdrs_xpack)
 endif()
diff --git a/src/proxy/hdrs/HdrToken.cc b/src/proxy/hdrs/HdrToken.cc
index 4a61b72540..2b7a30b7fb 100644
--- a/src/proxy/hdrs/HdrToken.cc
+++ b/src/proxy/hdrs/HdrToken.cc
@@ -30,7 +30,7 @@
 #include "proxy/hdrs/HTTP.h"
 #include "proxy/hdrs/HdrToken.h"
 #include "proxy/hdrs/MIME.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "proxy/hdrs/URL.h"
 
 /*
diff --git a/src/proxy/hdrs/VersionConverter.cc 
b/src/proxy/hdrs/VersionConverter.cc
index adbd97dc8c..bb55e940c1 100644
--- a/src/proxy/hdrs/VersionConverter.cc
+++ b/src/proxy/hdrs/VersionConverter.cc
@@ -23,7 +23,7 @@
 
 #include "proxy/hdrs/VersionConverter.h"
 #include "proxy/hdrs/HTTP.h"
-#include "tscpp/util/LocalBuffer.h"
+#include "tsutil/LocalBuffer.h"
 
 int
 VersionConverter::convert(HTTPHdr &header, int from, int to) const
diff --git a/src/proxy/hdrs/XPACK.cc b/src/proxy/hdrs/XPACK.cc
index 7062d8997e..3a0a271973 100644
--- a/src/proxy/hdrs/XPACK.cc
+++ b/src/proxy/hdrs/XPACK.cc
@@ -26,7 +26,7 @@
 
 #include "tscore/Arena.h"
 #include "tscore/ink_memory.h"
-#include "tscpp/util/LocalBuffer.h"
+#include "tsutil/LocalBuffer.h"
 
 //
 // [RFC 7541] 5.1. Integer representation
diff --git a/src/proxy/hdrs/test_urlhash.cc b/src/proxy/hdrs/test_urlhash.cc
index cd1a424d37..774d03de58 100644
--- a/src/proxy/hdrs/test_urlhash.cc
+++ b/src/proxy/hdrs/test_urlhash.cc
@@ -27,7 +27,7 @@
 #include "tscore/Arena.h"
 #include "proxy/hdrs/HTTP.h"
 #include "proxy/hdrs/MIME.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "proxy/hdrs/URL.h"
 #include "proxy/hdrs/HttpCompat.h"
 
diff --git a/src/proxy/hdrs/unit_tests/test_Hdrs.cc 
b/src/proxy/hdrs/unit_tests/test_Hdrs.cc
index dadcfbf1d3..e4cac5e3e2 100644
--- a/src/proxy/hdrs/unit_tests/test_Hdrs.cc
+++ b/src/proxy/hdrs/unit_tests/test_Hdrs.cc
@@ -29,10 +29,10 @@
 #include <cstdio>
 #include <memory>
 
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "tscore/ink_time.h"
 #include "tscore/Random.h"
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 #include "catch.hpp"
 
diff --git a/src/proxy/http/CMakeLists.txt b/src/proxy/http/CMakeLists.txt
index 465be0c50e..63f9ff6439 100644
--- a/src/proxy/http/CMakeLists.txt
+++ b/src/proxy/http/CMakeLists.txt
@@ -46,7 +46,7 @@ endif()
 
 target_link_libraries(
   http
-  PUBLIC ts::inkevent ts::inkhostdb ts::proxy ts::tsapicore ts::tscore
+  PUBLIC ts::inkevent ts::inkhostdb ts::proxy ts::tsutil ts::tscore
   PRIVATE ts::http2 ts::http_remap ts::inkcache ts::inkutils ts::logging
 )
 
diff --git a/src/proxy/http/Http1ServerSession.cc 
b/src/proxy/http/Http1ServerSession.cc
index f08a93fdc8..ce86245a0e 100644
--- a/src/proxy/http/Http1ServerSession.cc
+++ b/src/proxy/http/Http1ServerSession.cc
@@ -29,7 +29,7 @@
 
  ****************************************************************************/
 #include "tscore/ink_config.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "tscore/Allocator.h"
 #include "proxy/http/Http1ServerSession.h"
 #include "proxy/http/HttpSessionManager.h"
diff --git a/src/proxy/http/HttpSM.cc b/src/proxy/http/HttpSM.cc
index 4033859e0c..8ab22d0158 100644
--- a/src/proxy/http/HttpSM.cc
+++ b/src/proxy/http/HttpSM.cc
@@ -22,7 +22,7 @@
 
  */
 
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "proxy/ProxyTransaction.h"
 #include "proxy/http/HttpSM.h"
 #include "proxy/http/ConnectingEntry.h"
diff --git a/src/proxy/http/HttpTransact.cc b/src/proxy/http/HttpTransact.cc
index 0829ebcaeb..cb5816ace9 100644
--- a/src/proxy/http/HttpTransact.cc
+++ b/src/proxy/http/HttpTransact.cc
@@ -22,7 +22,7 @@
  */
 
 #include "tscore/ink_inet.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #include "ts/parentselectdefs.h"
 #include "tscore/ink_platform.h"
diff --git a/src/proxy/http/PreWarmManager.cc b/src/proxy/http/PreWarmManager.cc
index 527de32020..6c11049132 100644
--- a/src/proxy/http/PreWarmManager.cc
+++ b/src/proxy/http/PreWarmManager.cc
@@ -30,9 +30,9 @@
 #include "iocore/net/NetProcessor.h"
 #include "iocore/net/PreWarm.h"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 #include "tscore/ink_time.h"
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 #include <algorithm>
 
diff --git a/src/proxy/http/remap/NextHopConsistentHash.cc 
b/src/proxy/http/remap/NextHopConsistentHash.cc
index 649f5b9e6a..c5a4634671 100644
--- a/src/proxy/http/remap/NextHopConsistentHash.cc
+++ b/src/proxy/http/remap/NextHopConsistentHash.cc
@@ -25,7 +25,7 @@
 
 #include "proxy/http/HttpSM.h"
 #include "iocore/utils/Machine.h"
-#include "tscpp/util/YamlCfg.h"
+#include "tsutil/YamlCfg.h"
 #include "proxy/http/remap/NextHopConsistentHash.h"
 
 // hash_key strings.
diff --git a/src/proxy/http/remap/NextHopSelectionStrategy.cc 
b/src/proxy/http/remap/NextHopSelectionStrategy.cc
index 5063be69c8..08a909ec45 100644
--- a/src/proxy/http/remap/NextHopSelectionStrategy.cc
+++ b/src/proxy/http/remap/NextHopSelectionStrategy.cc
@@ -24,7 +24,7 @@
 #include <optional>
 
 #include <yaml-cpp/yaml.h>
-#include <tscpp/util/YamlCfg.h>
+#include <tsutil/YamlCfg.h>
 #include "iocore/utils/Machine.h"
 #include "proxy/http/HttpSM.h"
 #include "proxy/http/remap/NextHopSelectionStrategy.h"
diff --git a/src/proxy/http/remap/NextHopStrategyFactory.cc 
b/src/proxy/http/remap/NextHopStrategyFactory.cc
index 68ef7c97ee..70f2f34f2b 100644
--- a/src/proxy/http/remap/NextHopStrategyFactory.cc
+++ b/src/proxy/http/remap/NextHopStrategyFactory.cc
@@ -29,7 +29,7 @@
 #include "proxy/http/remap/NextHopStrategyFactory.h"
 #include "proxy/http/remap/NextHopConsistentHash.h"
 #include "proxy/http/remap/NextHopRoundRobin.h"
-#include <tscpp/util/YamlCfg.h>
+#include <tsutil/YamlCfg.h>
 
 NextHopStrategyFactory::NextHopStrategyFactory(const char *file) : fn(file)
 {
diff --git a/src/proxy/http/unit_tests/test_HttpTransact.cc 
b/src/proxy/http/unit_tests/test_HttpTransact.cc
index 89abc58546..32a2d74f5d 100644
--- a/src/proxy/http/unit_tests/test_HttpTransact.cc
+++ b/src/proxy/http/unit_tests/test_HttpTransact.cc
@@ -24,7 +24,7 @@
 #include <string_view>
 
 #include "tscore/Diags.h"
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 #include "proxy/http/HttpTransact.h"
 #include "records/RecordsConfig.h"
diff --git a/src/proxy/http2/HPACK.cc b/src/proxy/http2/HPACK.cc
index 1cb44998bb..367caed935 100644
--- a/src/proxy/http2/HPACK.cc
+++ b/src/proxy/http2/HPACK.cc
@@ -23,7 +23,7 @@
 
 #include "proxy/http2/HPACK.h"
 
-#include "tscpp/util/LocalBuffer.h"
+#include "tsutil/LocalBuffer.h"
 #include "swoc/TextView.h"
 
 namespace
diff --git a/src/proxy/http2/HTTP2.cc b/src/proxy/http2/HTTP2.cc
index 97429311a9..584d203a73 100644
--- a/src/proxy/http2/HTTP2.cc
+++ b/src/proxy/http2/HTTP2.cc
@@ -27,7 +27,7 @@
 #include "proxy/http2/HPACK.h"
 
 #include "tscore/ink_assert.h"
-#include "tscpp/util/LocalBuffer.h"
+#include "tsutil/LocalBuffer.h"
 
 #include "../../records/P_RecCore.h"
 #include "../../records/P_RecProcess.h"
diff --git a/src/proxy/http2/Http2ConnectionState.cc 
b/src/proxy/http2/Http2ConnectionState.cc
index 7afdadb064..9f716cdc70 100644
--- a/src/proxy/http2/Http2ConnectionState.cc
+++ b/src/proxy/http2/Http2ConnectionState.cc
@@ -35,8 +35,8 @@
 #include "iocore/net/TLSSNISupport.h"
 
 #include "tscore/ink_assert.h"
-#include "tscpp/util/PostScript.h"
-#include "tscpp/util/LocalBuffer.h"
+#include "tsutil/PostScript.h"
+#include "tsutil/LocalBuffer.h"
 
 #include <cstdint>
 #include <sstream>
diff --git a/src/proxy/http2/unit_tests/test_HTTP2.cc 
b/src/proxy/http2/unit_tests/test_HTTP2.cc
index e57a4de5fd..d36696949a 100644
--- a/src/proxy/http2/unit_tests/test_HTTP2.cc
+++ b/src/proxy/http2/unit_tests/test_HTTP2.cc
@@ -25,7 +25,7 @@
 
 #include "proxy/http2/HTTP2.h"
 
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 TEST_CASE("Convert HTTPHdr", "[HTTP2]")
 {
diff --git a/src/proxy/http3/CMakeLists.txt b/src/proxy/http3/CMakeLists.txt
index 66c136b4bd..49e3d93d4b 100644
--- a/src/proxy/http3/CMakeLists.txt
+++ b/src/proxy/http3/CMakeLists.txt
@@ -64,7 +64,7 @@ target_link_libraries(
           ts::quic
           ts::inkevent
           ts::records
-          ts::tsapicore
+          ts::tsutil
           ts::hdrs
           ts::tscore
 )
@@ -77,7 +77,7 @@ target_link_libraries(
           ts::quic
           ts::inkevent
           ts::records
-          ts::tsapicore
+          ts::tsutil
           ts::hdrs
           ts::tscore
 )
diff --git a/src/proxy/logging/LogBuffer.cc b/src/proxy/logging/LogBuffer.cc
index 2b73bab5eb..5bd0a89f27 100644
--- a/src/proxy/logging/LogBuffer.cc
+++ b/src/proxy/logging/LogBuffer.cc
@@ -26,7 +26,7 @@
   information on the structure of a LogBuffer.
  */
 #include "tscore/ink_platform.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #include <cstdio>
 #include <cstdlib>
diff --git a/src/proxy/logging/LogFilter.cc b/src/proxy/logging/LogFilter.cc
index 497cc1baa5..07c79a487f 100644
--- a/src/proxy/logging/LogFilter.cc
+++ b/src/proxy/logging/LogFilter.cc
@@ -34,7 +34,7 @@
 #include "swoc/bwf_ip.h"
 
 #include "tscore/ink_platform.h"
-#include "api/ts_errata.h"
+#include "tsutil/ts_errata.h"
 
 #include "proxy/logging/LogUtils.h"
 #include "proxy/logging/LogFilter.h"
diff --git a/src/proxy/logging/LogUtils.cc b/src/proxy/logging/LogUtils.cc
index ca607adc66..425da16f35 100644
--- a/src/proxy/logging/LogUtils.cc
+++ b/src/proxy/logging/LogUtils.cc
@@ -27,7 +27,7 @@
 #include "tscore/ink_string.h"
 #include <tscore/ink_assert.h>
 
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #ifdef TEST_LOG_UTILS
 
diff --git a/src/proxy/logging/unit-tests/benchmark_LogObject.cc 
b/src/proxy/logging/unit-tests/benchmark_LogObject.cc
index f30877ee0e..ed6d22b296 100644
--- a/src/proxy/logging/unit-tests/benchmark_LogObject.cc
+++ b/src/proxy/logging/unit-tests/benchmark_LogObject.cc
@@ -32,7 +32,7 @@ benchmark_LogObject_CPPFLAGS = \
        -I$(abs_top_srcdir)/tests/include
 benchmark_LogObject_LDADD = \
        $(top_builddir)/src/tscore/libtscore.a \
-       $(top_builddir)/src/tscpp/util/libtscpputil.la \
+       $(top_builddir)/src/tsutil/libtscpputil.la \
        $(top_builddir)/iocore/eventsystem/libinkevent.a \
        $(top_builddir)/proxy/logging/liblogging.a \
        $(top_builddir)/lib/records/librecords_p.a \
diff --git a/src/records/CMakeLists.txt b/src/records/CMakeLists.txt
index d60f97e15d..a65d5a43f2 100644
--- a/src/records/CMakeLists.txt
+++ b/src/records/CMakeLists.txt
@@ -36,7 +36,7 @@ add_library(ts::records ALIAS records)
 target_link_libraries(
   records
   PUBLIC ts::inkevent ts::tscore yaml-cpp::yaml-cpp
-  PRIVATE ts::tsapicore
+  PRIVATE ts::tsutil
 )
 
 if(BUILD_TESTING)
diff --git a/src/records/RecCore.cc b/src/records/RecCore.cc
index cbf01d6e3e..1ba7d25d3e 100644
--- a/src/records/RecCore.cc
+++ b/src/records/RecCore.cc
@@ -36,8 +36,8 @@
 #include "P_RecCore.h"
 #include "P_RecUtils.h"
 #include "tscore/Layout.h"
-#include "api/ts_errata.h"
-#include "api/Metrics.h"
+#include "tsutil/ts_errata.h"
+#include "tsutil/Metrics.h"
 
 using ts::Metrics;
 
diff --git a/src/records/RecYAMLDecoder.cc b/src/records/RecYAMLDecoder.cc
index 9f4a5a2bef..0b04581335 100644
--- a/src/records/RecYAMLDecoder.cc
+++ b/src/records/RecYAMLDecoder.cc
@@ -26,7 +26,7 @@
 #include "records/RecYAMLDefs.h"
 
 #include "tscore/Diags.h"
-#include "tscpp/util/YamlCfg.h"
+#include "tsutil/YamlCfg.h"
 #include "records/RecordsConfig.h"
 
 #include <string_view>
diff --git a/src/shared/rpc/IPCSocketClient.cc 
b/src/shared/rpc/IPCSocketClient.cc
index 3282b44d70..f0e86239d5 100644
--- a/src/shared/rpc/IPCSocketClient.cc
+++ b/src/shared/rpc/IPCSocketClient.cc
@@ -22,7 +22,7 @@
 #include <sstream>
 #include <utility>
 
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #include "shared/rpc/IPCSocketClient.h"
 #include <tscore/ink_assert.h>
diff --git a/src/traffic_cache_tool/CMakeLists.txt 
b/src/traffic_cache_tool/CMakeLists.txt
index 86b9f9a49f..e7a4dcd186 100644
--- a/src/traffic_cache_tool/CMakeLists.txt
+++ b/src/traffic_cache_tool/CMakeLists.txt
@@ -17,5 +17,5 @@
 
 add_executable(traffic_cache_tool CacheDefs.cc CacheTool.cc CacheScan.cc)
 
-target_link_libraries(traffic_cache_tool PRIVATE tscpputil ts::tscore 
libswoc::libswoc ts::tsapicore)
+target_link_libraries(traffic_cache_tool PRIVATE ts::tscore libswoc::libswoc 
ts::tsutil)
 install(TARGETS traffic_cache_tool)
diff --git a/src/traffic_cache_tool/CacheDefs.h 
b/src/traffic_cache_tool/CacheDefs.h
index 21ea61cb98..1c6fa92cb9 100644
--- a/src/traffic_cache_tool/CacheDefs.h
+++ b/src/traffic_cache_tool/CacheDefs.h
@@ -30,11 +30,11 @@
 #include "swoc/swoc_file.h"
 #include "swoc/Scalar.h"
 #include "swoc/TextView.h"
-#include "api/ts_errata.h"
+#include "tsutil/ts_errata.h"
 
 #include "tscore/Version.h"
 #include "tscore/ink_memory.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "tscore/ink_file.h"
 #include "tscore/CryptoHash.h"
 
diff --git a/src/traffic_crashlog/CMakeLists.txt 
b/src/traffic_crashlog/CMakeLists.txt
index 5d98d633cc..9dcda20323 100644
--- a/src/traffic_crashlog/CMakeLists.txt
+++ b/src/traffic_crashlog/CMakeLists.txt
@@ -17,7 +17,7 @@
 
 add_executable(traffic_crashlog procinfo.cc backtrace.cc traffic_crashlog.cc)
 
-target_link_libraries(traffic_crashlog PRIVATE ts::inkevent ts::records 
ts::tscore ts::tsapicore)
+target_link_libraries(traffic_crashlog PRIVATE ts::inkevent ts::records 
ts::tscore ts::tsutil)
 
 if(TS_USE_REMOTE_UNWINDING)
   target_link_libraries(traffic_crashlog PRIVATE unwind::unwind)
diff --git a/src/traffic_ctl/CMakeLists.txt b/src/traffic_ctl/CMakeLists.txt
index cf2d2d5a39..86d647237e 100644
--- a/src/traffic_ctl/CMakeLists.txt
+++ b/src/traffic_ctl/CMakeLists.txt
@@ -20,6 +20,6 @@ add_executable(
               ${CMAKE_SOURCE_DIR}/src/shared/rpc/IPCSocketClient.cc
 )
 
-target_link_libraries(traffic_ctl ts::tscore libswoc::libswoc 
yaml-cpp::yaml-cpp ts::tsapicore)
+target_link_libraries(traffic_ctl ts::tscore libswoc::libswoc 
yaml-cpp::yaml-cpp ts::tsutil)
 
 install(TARGETS traffic_ctl)
diff --git a/src/traffic_ctl/CtrlPrinters.cc b/src/traffic_ctl/CtrlPrinters.cc
index 3b2d58a7b0..37f3609bb7 100644
--- a/src/traffic_ctl/CtrlPrinters.cc
+++ b/src/traffic_ctl/CtrlPrinters.cc
@@ -23,7 +23,7 @@
 #include <string_view>
 
 #include <swoc/swoc_meta.h>
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 
 #include "CtrlPrinters.h"
 #include "jsonrpc/ctrl_yaml_codecs.h"
diff --git a/src/traffic_ctl/FileConfigCommand.cc 
b/src/traffic_ctl/FileConfigCommand.cc
index 50e1d64e76..76ef4270aa 100644
--- a/src/traffic_ctl/FileConfigCommand.cc
+++ b/src/traffic_ctl/FileConfigCommand.cc
@@ -22,7 +22,7 @@
 #include <unordered_map>
 
 #include "FileConfigCommand.h"
-#include "tscpp/util/YamlCfg.h"
+#include "tsutil/YamlCfg.h"
 #include "swoc/TextView.h"
 #include "swoc/BufferWriter.h"
 #include "swoc/bwf_base.h"
diff --git a/src/traffic_layout/CMakeLists.txt 
b/src/traffic_layout/CMakeLists.txt
index abb93b2bb7..551b0f9271 100644
--- a/src/traffic_layout/CMakeLists.txt
+++ b/src/traffic_layout/CMakeLists.txt
@@ -17,7 +17,7 @@
 
 add_executable(traffic_layout engine.cc file_system.cc info.cc 
traffic_layout.cc)
 
-target_link_libraries(traffic_layout PRIVATE ts::inkevent ts::records 
yaml-cpp::yaml-cpp ts::tscore ts::tsapicore)
+target_link_libraries(traffic_layout PRIVATE ts::inkevent ts::records 
yaml-cpp::yaml-cpp ts::tscore ts::tsutil)
 
 if(TS_USE_HWLOC)
   target_link_libraries(traffic_layout PRIVATE hwloc::hwloc)
diff --git a/src/traffic_server/CMakeLists.txt 
b/src/traffic_server/CMakeLists.txt
index 32e5936f7b..c381520c6f 100644
--- a/src/traffic_server/CMakeLists.txt
+++ b/src/traffic_server/CMakeLists.txt
@@ -21,7 +21,7 @@ target_link_libraries(
   PRIVATE ts::tscore
           ts::tsapi
           ts::overridable_txn_vars
-          ts::tsapicore
+          ts::tsutil
           ts::http
           ts::http_remap
           ts::http2
diff --git a/src/traffic_via/CMakeLists.txt b/src/traffic_via/CMakeLists.txt
index 329be61615..dcc032e193 100644
--- a/src/traffic_via/CMakeLists.txt
+++ b/src/traffic_via/CMakeLists.txt
@@ -16,7 +16,7 @@
 #######################
 
 add_executable(traffic_via traffic_via.cc)
-target_link_libraries(traffic_via ts::tscore libswoc::libswoc ts::tsapicore)
+target_link_libraries(traffic_via ts::tscore libswoc::libswoc ts::tsutil)
 install(TARGETS traffic_via)
 
 if(BUILD_TESTING)
diff --git a/src/traffic_via/traffic_via.cc b/src/traffic_via/traffic_via.cc
index 1344107c0e..5872af2e26 100644
--- a/src/traffic_via/traffic_via.cc
+++ b/src/traffic_via/traffic_via.cc
@@ -28,7 +28,7 @@
 #include <cstring>
 #include <iostream>
 #include <string_view>
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 
 /// XXX Use DFA or Regex wrappers?
 #ifdef HAVE_PCRE_PCRE_H
diff --git a/src/tscore/CMakeLists.txt b/src/tscore/CMakeLists.txt
index 033a502c21..dae9460326 100644
--- a/src/tscore/CMakeLists.txt
+++ b/src/tscore/CMakeLists.txt
@@ -110,14 +110,7 @@ else()
 endif()
 
 target_link_libraries(
-  tscore
-  PUBLIC OpenSSL::Crypto
-         PCRE::PCRE
-         libswoc::libswoc
-         yaml-cpp::yaml-cpp
-         resolv::resolv
-         ts::tsapicore
-         ts::tscpputil
+  tscore PUBLIC OpenSSL::Crypto PCRE::PCRE libswoc::libswoc yaml-cpp::yaml-cpp 
resolv::resolv ts::tsutil
 )
 
 if(TS_USE_POSIX_CAP)
@@ -172,10 +165,9 @@ if(BUILD_TESTING)
     test_tscore
     PRIVATE libswoc::libswoc
             ts::tscore
-            ts::tsapicore
+            ts::tsutil
             yaml-cpp::yaml-cpp
             resolv::resolv
-            ts::tscpputil
             OpenSSL::Crypto
             OpenSSL::SSL
             catch2::catch2
diff --git a/src/tscore/Diags.cc b/src/tscore/Diags.cc
index 2c81c9ce52..7aa63546f0 100644
--- a/src/tscore/Diags.cc
+++ b/src/tscore/Diags.cc
@@ -34,9 +34,9 @@
 
  ****************************************************************************/
 
-#include "api/DbgCtl.h"
+#include "tsutil/DbgCtl.h"
 #include "tscore/DiagsTypes.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "tscore/ink_platform.h"
 #include "tscore/ink_memory.h"
 #include "tscore/ink_defs.h"
diff --git a/src/tscore/unit_tests/test_Bravo.cc 
b/src/tscore/unit_tests/test_Bravo.cc
index e64e7514f3..0b812a28dc 100644
--- a/src/tscore/unit_tests/test_Bravo.cc
+++ b/src/tscore/unit_tests/test_Bravo.cc
@@ -22,7 +22,7 @@
  */
 
 #include "catch.hpp"
-#include "tscpp/util/Bravo.h"
+#include "tsutil/Bravo.h"
 
 #include <chrono>
 #include <mutex>
diff --git a/src/tscore/unit_tests/test_Histogram.cc 
b/src/tscore/unit_tests/test_Histogram.cc
index 90a023feb2..54941540d2 100644
--- a/src/tscore/unit_tests/test_Histogram.cc
+++ b/src/tscore/unit_tests/test_Histogram.cc
@@ -23,7 +23,7 @@
 
 #include <sstream>
 #include <catch.hpp>
-#include "tscpp/util/Histogram.h"
+#include "tsutil/Histogram.h"
 
 // -------------
 // --- TESTS ---
diff --git a/src/tscore/unit_tests/test_History.cc 
b/src/tscore/unit_tests/test_History.cc
index 62f41f57b6..66df5252a6 100644
--- a/src/tscore/unit_tests/test_History.cc
+++ b/src/tscore/unit_tests/test_History.cc
@@ -24,7 +24,7 @@
 #include <string_view>
 
 #include "tscore/History.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "catch.hpp"
 
 using std::string_view;
diff --git a/src/tscore/unit_tests/test_X509HostnameValidator.cc 
b/src/tscore/unit_tests/test_X509HostnameValidator.cc
index cc1e69b952..f79262ce42 100644
--- a/src/tscore/unit_tests/test_X509HostnameValidator.cc
+++ b/src/tscore/unit_tests/test_X509HostnameValidator.cc
@@ -35,7 +35,7 @@
 #include "tscore/ink_queue.h"
 #include "tscore/X509HostnameValidator.h"
 
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 // clang-format off
 
diff --git a/src/tscpp/util/CMakeLists.txt b/src/tscpp/util/CMakeLists.txt
deleted file mode 100644
index d81dfd8569..0000000000
--- a/src/tscpp/util/CMakeLists.txt
+++ /dev/null
@@ -1,55 +0,0 @@
-#######################
-#
-#  Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
-#  agreements.  See the NOTICE file distributed with this work for additional 
information regarding
-#  copyright ownership.  The ASF licenses this file to you under the Apache 
License, Version 2.0
-#  (the "License"); you may not use this file except in compliance with the 
License.  You may obtain
-#  a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-#  Unless required by applicable law or agreed to in writing, software 
distributed under the License
-#  is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
-#  or implied. See the License for the specific language governing permissions 
and limitations under
-#  the License.
-#
-#######################
-
-add_library(tscpputil SHARED ts_ip.cc YamlCfg.cc ts_unit_parser.cc Regex.cc)
-add_library(ts::tscpputil ALIAS tscpputil)
-target_link_libraries(tscpputil PUBLIC PCRE::PCRE libswoc::libswoc 
yaml-cpp::yaml-cpp)
-set(TSCPPUTIL_PUBLIC_HEADERS
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/Bravo.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/Convert.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/DenseThreadId.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/Histogram.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/LocalBuffer.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/PostScript.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/Strerror.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/Regex.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/TsSharedMutex.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/YamlCfg.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/ts_ip.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/ts_meta.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/ts_time_parser.h
-    ${PROJECT_SOURCE_DIR}/include/tscpp/util/ts_unit_parser.h
-)
-set_target_properties(tscpputil PROPERTIES PUBLIC_HEADER 
"${TSCPPUTIL_PUBLIC_HEADERS}")
-
-install(TARGETS tscpputil PUBLIC_HEADER DESTINATION 
${CMAKE_INSTALL_INCLUDEDIR}/tscpp/util)
-
-if(BUILD_TESTING)
-  add_executable(
-    test_tscpputil
-    unit_tests/test_LocalBuffer.cc
-    unit_tests/test_PostScript.cc
-    unit_tests/test_Strerror.cc
-    unit_tests/test_Regex.cc
-    unit_tests/test_ts_meta.cc
-    unit_tests/test_time_parser.cc
-    unit_tests/unit_test_main.cc
-  )
-  target_link_libraries(test_tscpputil PRIVATE tscpputil libswoc::libswoc 
catch2::catch2)
-
-  add_test(NAME test_tscpputil COMMAND $<TARGET_FILE:test_tscpputil>)
-endif()
diff --git a/src/api/Assert.cc b/src/tsutil/Assert.cc
similarity index 95%
rename from src/api/Assert.cc
rename to src/tsutil/Assert.cc
index defc3fdfb6..e94e29956d 100644
--- a/src/api/Assert.cc
+++ b/src/tsutil/Assert.cc
@@ -21,8 +21,8 @@
   limitations under the License.
  */
 
-#include "api/Assert.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/Assert.h"
+#include "tsutil/ts_bw_format.h"
 
 #include <stdexcept>
 #include <syslog.h>
diff --git a/src/tsutil/CMakeLists.txt b/src/tsutil/CMakeLists.txt
new file mode 100644
index 0000000000..0d17737d4c
--- /dev/null
+++ b/src/tsutil/CMakeLists.txt
@@ -0,0 +1,74 @@
+#######################
+#
+#  Licensed to the Apache Software Foundation (ASF) under one or more 
contributor license
+#  agreements.  See the NOTICE file distributed with this work for additional 
information regarding
+#  copyright ownership.  The ASF licenses this file to you under the Apache 
License, Version 2.0
+#  (the "License"); you may not use this file except in compliance with the 
License.  You may obtain
+#  a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software 
distributed under the License
+#  is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express
+#  or implied. See the License for the specific language governing permissions 
and limitations under
+#  the License.
+#
+#######################
+
+set(TSUTIL_PUBLIC_HEADERS
+    ${PROJECT_SOURCE_DIR}/include/tsutil/Metrics.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/SourceLocation.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/DbgCtl.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_bw_format.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_diag_levels.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_errata.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/Bravo.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/Convert.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/DenseThreadId.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/Histogram.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/LocalBuffer.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/PostScript.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/Strerror.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/Regex.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/TsSharedMutex.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/YamlCfg.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_ip.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_meta.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_time_parser.h
+    ${PROJECT_SOURCE_DIR}/include/tsutil/ts_unit_parser.h
+)
+add_library(
+  tsutil
+  Assert.cc
+  Metrics.cc
+  DbgCtl.cc
+  SourceLocation.cc
+  ts_diags.cc
+  ts_ip.cc
+  YamlCfg.cc
+  ts_unit_parser.cc
+  Regex.cc
+)
+add_library(ts::tsutil ALIAS tsutil)
+set_target_properties(tsutil PROPERTIES POSITION_INDEPENDENT_CODE TRUE 
PUBLIC_HEADER "${TSUTIL_PUBLIC_HEADERS}")
+target_link_libraries(tsutil PUBLIC libswoc::libswoc yaml-cpp::yaml-cpp 
PCRE::PCRE)
+
+install(TARGETS tsutil PUBLIC_HEADER DESTINATION 
${CMAKE_INSTALL_INCLUDEDIR}/tsutil)
+
+if(BUILD_TESTING)
+  add_executable(
+    test_tsutil
+    unit_tests/test_Metrics.cc
+    unit_tests/test_LocalBuffer.cc
+    unit_tests/test_PostScript.cc
+    unit_tests/test_Strerror.cc
+    unit_tests/test_Regex.cc
+    unit_tests/test_ts_meta.cc
+    unit_tests/test_time_parser.cc
+    unit_tests/unit_test_main.cc
+  )
+
+  target_link_libraries(test_tsutil PRIVATE tsutil catch2::catch2)
+
+  add_test(NAME test_tsutil COMMAND $<TARGET_FILE:test_tsutil>)
+endif()
diff --git a/src/api/DbgCtl.cc b/src/tsutil/DbgCtl.cc
similarity index 98%
rename from src/api/DbgCtl.cc
rename to src/tsutil/DbgCtl.cc
index 06835361bb..b60873fdd1 100644
--- a/src/api/DbgCtl.cc
+++ b/src/tsutil/DbgCtl.cc
@@ -29,12 +29,12 @@
 #include <cstdarg>
 #include <cinttypes>
 
-#include "api/SourceLocation.h"
+#include "tsutil/SourceLocation.h"
 
-#include "api/ts_diag_levels.h"
-#include "api/ts_bw_format.h"
-#include "api/DbgCtl.h"
-#include "api/Assert.h"
+#include "tsutil/ts_diag_levels.h"
+#include "tsutil/ts_bw_format.h"
+#include "tsutil/DbgCtl.h"
+#include "tsutil/Assert.h"
 
 #include "tscore/ink_config.h"
 
diff --git a/src/api/Metrics.cc b/src/tsutil/Metrics.cc
similarity index 98%
rename from src/api/Metrics.cc
rename to src/tsutil/Metrics.cc
index d0e3d5cfca..af8f3669d7 100644
--- a/src/api/Metrics.cc
+++ b/src/tsutil/Metrics.cc
@@ -21,8 +21,8 @@
   limitations under the License.
  */
 
-#include "api/Assert.h"
-#include "api/Metrics.h"
+#include "tsutil/Assert.h"
+#include "tsutil/Metrics.h"
 
 namespace ts
 {
diff --git a/src/tscpp/util/Regex.cc b/src/tsutil/Regex.cc
similarity index 96%
rename from src/tscpp/util/Regex.cc
rename to src/tsutil/Regex.cc
index 04adf3d842..42d9d27c28 100644
--- a/src/tscpp/util/Regex.cc
+++ b/src/tsutil/Regex.cc
@@ -21,7 +21,7 @@
   limitations under the License.
  */
 
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 
 #include <array>
 #include <assert.h>
@@ -32,8 +32,6 @@
 #include <pcre.h>
 #endif
 
-#include "tscore/ink_memory.h" // ats_pagesize()
-
 namespace
 {
 inline pcre *
@@ -75,7 +73,7 @@ pcre_jit_stack *
 get_jit_stack(void *)
 {
   if (!jit_stack) {
-    jit_stack = pcre_jit_stack_alloc(ats_pagesize(), 1024 * 1024); // 1 page 
min and 1MB max
+    jit_stack = pcre_jit_stack_alloc(4096, 1024 * 1024); // 1 page min and 1MB 
max
   }
   return jit_stack;
 }
diff --git a/src/api/SourceLocation.cc b/src/tsutil/SourceLocation.cc
similarity index 98%
rename from src/api/SourceLocation.cc
rename to src/tsutil/SourceLocation.cc
index bb5e788e9f..3945a529a7 100644
--- a/src/api/SourceLocation.cc
+++ b/src/tsutil/SourceLocation.cc
@@ -23,7 +23,7 @@
 
 #include <cstdio>
 #include <cstring>
-#include "api/SourceLocation.h"
+#include "tsutil/SourceLocation.h"
 #include "swoc/BufferWriter.h"
 #include "swoc/bwf_ex.h"
 
diff --git a/src/tscpp/util/YamlCfg.cc b/src/tsutil/YamlCfg.cc
similarity index 93%
rename from src/tscpp/util/YamlCfg.cc
rename to src/tsutil/YamlCfg.cc
index 1ba2569520..2afded72d0 100644
--- a/src/tscpp/util/YamlCfg.cc
+++ b/src/tsutil/YamlCfg.cc
@@ -21,14 +21,12 @@
   limitations under the License.
  */
 
-#include "tscpp/util/YamlCfg.h"
+#include "tsutil/YamlCfg.h"
 
 #include <algorithm>
 #include <string>
 
-#include "api/ts_bw_format.h"
-
-#include <tscore/ink_assert.h>
+#include "tsutil/ts_bw_format.h"
 
 namespace ts
 {
@@ -61,8 +59,6 @@ namespace Yaml
   Map::done()
   {
     if (!_bad && (_used_key.size() != _map.size())) {
-      // ink_assert(_used_key.size() < _map.size());
-
       std::string msg{(_map.size() - _used_key.size()) > 1 ? "keys " : "key "};
       bool first{true};
 
diff --git a/src/api/ts_diags.cc b/src/tsutil/ts_diags.cc
similarity index 95%
rename from src/api/ts_diags.cc
rename to src/tsutil/ts_diags.cc
index a02d2958d0..7f4eb9d197 100644
--- a/src/api/ts_diags.cc
+++ b/src/tsutil/ts_diags.cc
@@ -22,8 +22,8 @@
   limitations under the License.
 */
 
-#include "api/ts_diag_levels.h"
-#include "api/ts_errata.h"
+#include "tsutil/ts_diag_levels.h"
+#include "tsutil/ts_errata.h"
 
 static const bool INITIALIZED = []() -> bool {
   swoc::Errata::DEFAULT_SEVERITY = ERRATA_ERROR;
diff --git a/src/tscpp/util/ts_ip.cc b/src/tsutil/ts_ip.cc
similarity index 96%
rename from src/tscpp/util/ts_ip.cc
rename to src/tsutil/ts_ip.cc
index c0cd41450c..a566628631 100644
--- a/src/tscpp/util/ts_ip.cc
+++ b/src/tsutil/ts_ip.cc
@@ -24,9 +24,7 @@
 #include <sys/socket.h>
 #include <netdb.h>
 
-#include <tscore/ink_memory.h>
-
-#include "tscpp/util/ts_ip.h"
+#include "tsutil/ts_ip.h"
 
 namespace ts
 {
@@ -71,12 +69,11 @@ getbestaddrinfo(swoc::TextView name)
     GL  // Global.
   } spot_type = NA,
     ip4_type = NA, ip6_type = NA;
-  addrinfo ai_hints;
+  addrinfo ai_hints{};
   addrinfo *ai_result;
   IPAddrPair zret;
 
   // Do the resolution
-  ink_zero(ai_hints);
   ai_hints.ai_family = AF_UNSPEC;
   ai_hints.ai_flags  = AI_ADDRCONFIG;
 
diff --git a/src/tscpp/util/ts_unit_parser.cc b/src/tsutil/ts_unit_parser.cc
similarity index 97%
rename from src/tscpp/util/ts_unit_parser.cc
rename to src/tsutil/ts_unit_parser.cc
index a2cc9d61d1..a3ea795ab7 100644
--- a/src/tscpp/util/ts_unit_parser.cc
+++ b/src/tsutil/ts_unit_parser.cc
@@ -24,8 +24,8 @@
 
 #include <chrono>
 
-#include "tscpp/util/ts_unit_parser.h"
-#include "tscpp/util/ts_time_parser.h"
+#include "tsutil/ts_unit_parser.h"
+#include "tsutil/ts_time_parser.h"
 
 namespace ts
 {
diff --git a/src/tscpp/util/unit_tests/test_LocalBuffer.cc 
b/src/tsutil/unit_tests/test_LocalBuffer.cc
similarity index 98%
rename from src/tscpp/util/unit_tests/test_LocalBuffer.cc
rename to src/tsutil/unit_tests/test_LocalBuffer.cc
index 9d4b3a3bbd..ef31a51295 100644
--- a/src/tscpp/util/unit_tests/test_LocalBuffer.cc
+++ b/src/tsutil/unit_tests/test_LocalBuffer.cc
@@ -22,7 +22,7 @@
  */
 
 #include "catch.hpp"
-#include "tscpp/util/LocalBuffer.h"
+#include "tsutil/LocalBuffer.h"
 
 #include <cstring>
 
diff --git a/src/api/unit_tests/test_Metrics.cc 
b/src/tsutil/unit_tests/test_Metrics.cc
similarity index 98%
rename from src/api/unit_tests/test_Metrics.cc
rename to src/tsutil/unit_tests/test_Metrics.cc
index f141ed9dfa..70176bab2d 100644
--- a/src/api/unit_tests/test_Metrics.cc
+++ b/src/tsutil/unit_tests/test_Metrics.cc
@@ -21,10 +21,9 @@
     limitations under the License.
 */
 
-#define CATCH_CONFIG_MAIN
 #include "catch.hpp"
 
-#include "api/Metrics.h"
+#include "tsutil/Metrics.h"
 using ts::Metrics;
 
 TEST_CASE("Metrics", "[libtsapi][Metrics]")
diff --git a/src/tscpp/util/unit_tests/test_PostScript.cc 
b/src/tsutil/unit_tests/test_PostScript.cc
similarity index 97%
rename from src/tscpp/util/unit_tests/test_PostScript.cc
rename to src/tsutil/unit_tests/test_PostScript.cc
index ceffc073dc..adc879094c 100644
--- a/src/tscpp/util/unit_tests/test_PostScript.cc
+++ b/src/tsutil/unit_tests/test_PostScript.cc
@@ -22,7 +22,7 @@
  */
 
 #include "catch.hpp"
-#include "tscpp/util/PostScript.h"
+#include "tsutil/PostScript.h"
 
 namespace
 {
diff --git a/src/tscpp/util/unit_tests/test_Regex.cc 
b/src/tsutil/unit_tests/test_Regex.cc
similarity index 98%
rename from src/tscpp/util/unit_tests/test_Regex.cc
rename to src/tsutil/unit_tests/test_Regex.cc
index a0074af6a7..16f327dff6 100644
--- a/src/tscpp/util/unit_tests/test_Regex.cc
+++ b/src/tsutil/unit_tests/test_Regex.cc
@@ -25,7 +25,7 @@
 
 #include "tscore/ink_assert.h"
 #include "tscore/ink_defs.h"
-#include "tscpp/util/Regex.h"
+#include "tsutil/Regex.h"
 #include "catch.hpp"
 
 struct subject_match_t {
diff --git a/src/tscpp/util/unit_tests/test_Strerror.cc 
b/src/tsutil/unit_tests/test_Strerror.cc
similarity index 96%
rename from src/tscpp/util/unit_tests/test_Strerror.cc
rename to src/tsutil/unit_tests/test_Strerror.cc
index cd021ca489..329d2ec0e3 100644
--- a/src/tscpp/util/unit_tests/test_Strerror.cc
+++ b/src/tsutil/unit_tests/test_Strerror.cc
@@ -25,7 +25,7 @@
 
 #include <string.h>
 #include <errno.h>
-#include <tscpp/util/Strerror.h>
+#include <tsutil/Strerror.h>
 
 TEST_CASE("Strerror", "[STE]")
 {
diff --git a/src/tscpp/util/unit_tests/test_time_parser.cc 
b/src/tsutil/unit_tests/test_time_parser.cc
similarity index 96%
rename from src/tscpp/util/unit_tests/test_time_parser.cc
rename to src/tsutil/unit_tests/test_time_parser.cc
index 443fe8c18a..196270b5fc 100644
--- a/src/tscpp/util/unit_tests/test_time_parser.cc
+++ b/src/tsutil/unit_tests/test_time_parser.cc
@@ -24,7 +24,7 @@
 #include <chrono>
 
 #include "catch.hpp"
-#include "tscpp/util/ts_time_parser.h"
+#include "tsutil/ts_time_parser.h"
 
 using namespace std::chrono;
 
diff --git a/src/tscpp/util/unit_tests/test_ts_meta.cc 
b/src/tsutil/unit_tests/test_ts_meta.cc
similarity index 98%
rename from src/tscpp/util/unit_tests/test_ts_meta.cc
rename to src/tsutil/unit_tests/test_ts_meta.cc
index 986425d8ed..96320aa42e 100644
--- a/src/tscpp/util/unit_tests/test_ts_meta.cc
+++ b/src/tsutil/unit_tests/test_ts_meta.cc
@@ -20,7 +20,7 @@
 
 #include <cstring>
 
-#include "tscpp/util/ts_meta.h"
+#include "tsutil/ts_meta.h"
 #include "swoc/TextView.h"
 
 #include "catch.hpp"
diff --git a/src/tscpp/util/unit_tests/unit_test_main.cc 
b/src/tsutil/unit_tests/unit_test_main.cc
similarity index 100%
rename from src/tscpp/util/unit_tests/unit_test_main.cc
rename to src/tsutil/unit_tests/unit_test_main.cc
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 70cba692e1..b81bbd6271 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -23,7 +23,7 @@ function(ADD_AUTEST_PLUGIN _NAME)
                PREFIX ""
                SUFFIX ".so"
   )
-  target_link_libraries(${_NAME} PRIVATE ts::tsapi ts::tsapicore)
+  target_link_libraries(${_NAME} PRIVATE ts::tsapi ts::tsutil)
 endfunction()
 
 add_subdirectory(tools/plugins)
diff --git a/tests/fuzzing/CMakeLists.txt b/tests/fuzzing/CMakeLists.txt
index 525c011da0..19dd09ad5b 100644
--- a/tests/fuzzing/CMakeLists.txt
+++ b/tests/fuzzing/CMakeLists.txt
@@ -48,6 +48,5 @@ add_custom_command(
   TARGET fuzz_esi
   POST_BUILD
   COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:libswoc> 
${CMAKE_CURRENT_BINARY_DIR}/lib/
-  COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:ts::tsapi> 
${CMAKE_CURRENT_BINARY_DIR}/lib/
-  COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:ts::tscpputil> 
${CMAKE_CURRENT_BINARY_DIR}/lib/
+  COMMAND ${CMAKE_COMMAND} -E copy_if_different $<TARGET_FILE:ts::tsutil> 
${CMAKE_CURRENT_BINARY_DIR}/lib/
 )
diff --git a/tests/gold_tests/jsonrpc/plugins/jsonrpc_plugin_handler_test.cc 
b/tests/gold_tests/jsonrpc/plugins/jsonrpc_plugin_handler_test.cc
index c92d9d5e88..41d94bbe53 100644
--- a/tests/gold_tests/jsonrpc/plugins/jsonrpc_plugin_handler_test.cc
+++ b/tests/gold_tests/jsonrpc/plugins/jsonrpc_plugin_handler_test.cc
@@ -31,7 +31,7 @@
 #include "yaml-cpp/yaml.h"
 #include "tscore/Errata.h"
 #include "tscore/Layout.h"
-#include "api/ts_bw_format.h"
+#include "tsutil/ts_bw_format.h"
 #include "mgmt/rpc/jsonrpc/JsonRPC.h"
 
 namespace
diff --git a/tests/gold_tests/pluginTest/tsapi/test_tsapi.cc 
b/tests/gold_tests/pluginTest/tsapi/test_tsapi.cc
index 5691d8af11..ca037a1e55 100644
--- a/tests/gold_tests/pluginTest/tsapi/test_tsapi.cc
+++ b/tests/gold_tests/pluginTest/tsapi/test_tsapi.cc
@@ -25,7 +25,7 @@
 #include <string>
 #include <bitset>
 
-#include <tscpp/util/PostScript.h>
+#include <tsutil/PostScript.h>
 #include <tscpp/api/Cleanup.h>
 
 #include <ts/ts.h>
diff --git a/tools/benchmark/benchmark_SharedMutex.cc 
b/tools/benchmark/benchmark_SharedMutex.cc
index fe1a499d77..fde0264055 100644
--- a/tools/benchmark/benchmark_SharedMutex.cc
+++ b/tools/benchmark/benchmark_SharedMutex.cc
@@ -29,7 +29,7 @@
 
 #include "catch.hpp"
 
-#include "tscpp/util/Bravo.h"
+#include "tsutil/Bravo.h"
 
 #include <mutex>
 #include <shared_mutex>

Reply via email to