diff --git a/include/stdplus/zstring.hpp b/include/stdplus/zstring.hpp
index ab1e524..5cf5f0a 100644
--- a/include/stdplus/zstring.hpp
+++ b/include/stdplus/zstring.hpp
@@ -1,5 +1,6 @@
 #pragma once
 #include <cstddef>
+#include <fmt/core.h>
 #include <limits>
 #include <string>
 #include <type_traits>
@@ -246,3 +247,22 @@
 #undef zstring_all
 
 } // namespace stdplus
+
+namespace fmt
+{
+
+template <typename CharT, typename Traits>
+struct formatter<stdplus::basic_zstring<CharT, Traits>,
+                 std::remove_const_t<CharT>>
+    : formatter<const CharT*, std::remove_const_t<CharT>>
+{
+    template <typename FormatContext>
+    inline auto format(stdplus::basic_zstring<CharT, Traits> str,
+                       FormatContext& ctx) const
+    {
+        return formatter<const CharT*, std::remove_const_t<CharT>>::format(
+            str.c_str(), ctx);
+    }
+};
+
+} // namespace fmt
diff --git a/include/stdplus/zstring_view.hpp b/include/stdplus/zstring_view.hpp
index a88edf8..f7b62dd 100644
--- a/include/stdplus/zstring_view.hpp
+++ b/include/stdplus/zstring_view.hpp
@@ -1,4 +1,5 @@
 #pragma once
+#include <fmt/core.h>
 #include <stdexcept>
 #include <stdplus/zstring.hpp>
 #include <string>
@@ -361,3 +362,21 @@
 zstring_view_all(char32_t, u32);
 zstring_view_all(wchar_t, w);
 #undef zstring_view_all
+
+namespace fmt
+{
+
+template <typename CharT, typename Traits>
+struct formatter<stdplus::basic_zstring_view<CharT, Traits>, CharT>
+    : formatter<basic_string_view<CharT>, CharT>
+{
+    template <typename FormatContext>
+    inline auto format(stdplus::basic_zstring_view<CharT, Traits> str,
+                       FormatContext& ctx) const
+    {
+        return formatter<basic_string_view<CharT>, CharT>::format(
+            static_cast<std::basic_string_view<CharT, Traits>>(str), ctx);
+    }
+};
+
+} // namespace fmt
diff --git a/test/zstring.cpp b/test/zstring.cpp
index 70f4c88..600b493 100644
--- a/test/zstring.cpp
+++ b/test/zstring.cpp
@@ -1,3 +1,4 @@
+#include <fmt/format.h>
 #include <gtest/gtest.h>
 #include <iostream>
 #include <stdplus/zstring.hpp>
@@ -37,6 +38,8 @@
     EXPECT_EQ(str2, zs);
 
     std::cerr << const_zstring(as);
+    EXPECT_EQ("dd", fmt::format("d{}", zs));
+    EXPECT_EQ("dc", fmt::format("d{}", const_zstring(as)));
 
     auto from_str = [&](const_zstring cs) { EXPECT_EQ(cs, "ac"); };
     from_str("ac"s);
diff --git a/test/zstring_view.cpp b/test/zstring_view.cpp
index 84b7cb8..95e9aa5 100644
--- a/test/zstring_view.cpp
+++ b/test/zstring_view.cpp
@@ -1,3 +1,4 @@
+#include <fmt/format.h>
 #include <gtest/gtest.h>
 #include <iostream>
 #include <set>
@@ -49,6 +50,7 @@
     EXPECT_LE(sv, s1);
 
     std::cerr << s1;
+    EXPECT_EQ("bac", fmt::format("b{}", s1));
 
     std::unordered_set<zstring_view> uset{s1, s2};
     EXPECT_EQ(1, uset.count("ac"));
