From 594c9551ff13558e24072c4e4974bd0d3be1db63 Mon Sep 17 00:00:00 2001 From: gubaojian Date: Thu, 26 Jun 2025 15:39:00 +0800 Subject: [PATCH 1/2] add enable simd utf8 macro --- src/WebSocketProtocol.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/WebSocketProtocol.h b/src/WebSocketProtocol.h index 15d57a91c..2564646f0 100644 --- a/src/WebSocketProtocol.h +++ b/src/WebSocketProtocol.h @@ -25,6 +25,10 @@ #include #include +#ifdef ENABLE_SIMD_UTF8 + #include +#endif + namespace uWS { /* We should not overcomplicate these */ @@ -111,6 +115,14 @@ T cond_byte_swap(T value) { return value; } +#ifdef ENABLE_SIMD_UTF8 + +static bool isValidUtf8(unsigned char *s, size_t length) +{ + return simdutf::validate_utf8((const char *)s, length); +} + +#else // Based on utf8_check.c by Markus Kuhn, 2005 // https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c // Optimized for predominantly 7-bit content by Alex Hultman, 2016 @@ -158,6 +170,8 @@ static bool isValidUtf8(unsigned char *s, size_t length) return true; } +#endif + struct CloseFrame { uint16_t code; char *message; From 9ccf11ca9d22e7afd2097962914dbe7442792c5a Mon Sep 17 00:00:00 2001 From: gubaojian Date: Fri, 27 Jun 2025 08:45:15 +0800 Subject: [PATCH 2/2] change macro to UWS_USE_SIMDUTF --- src/WebSocketProtocol.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/WebSocketProtocol.h b/src/WebSocketProtocol.h index 2564646f0..9aa79e229 100644 --- a/src/WebSocketProtocol.h +++ b/src/WebSocketProtocol.h @@ -25,7 +25,7 @@ #include #include -#ifdef ENABLE_SIMD_UTF8 +#ifdef UWS_USE_SIMDUTF #include #endif @@ -115,7 +115,7 @@ T cond_byte_swap(T value) { return value; } -#ifdef ENABLE_SIMD_UTF8 +#ifdef UWS_USE_SIMDUTF static bool isValidUtf8(unsigned char *s, size_t length) {