libgrapheme (textproc/libgrapheme) Updated: 1 year, 4 months ago Add to my watchlist

extremely simple freestanding C99 library providing utilities for properly handling strings according to the latest Unicode standard

libgrapheme is an extremely simple freestanding C99 library providing utilities for properly handling strings according to the latest Unicode standard 15.0.0. It offers fully Unicode compliant grapheme cluster (i.e. user-perceived character) segmentation, word segmentation, sentence segmentation, detection of permissible line break opportunities, case detection (lower-, upper- and title-case), case conversion (to lower-, upper- and title-case) on UTF-8 strings and codepoint arrays, which both can also be null-terminated. The necessary lookup-tables are automatically generated from the Unicode standard data (contained in the tarball) and heavily compressed. Over 10,000 automatically generated conformance tests and over 150 unit tests ensure conformance and correctness. There is no complicated build-system involved and it's all done using one POSIX-compliant Makefile. All you need is a C99 compiler, given the lookup-table-generators and compressors that are only run at build-time are also written in C99. The resulting library is freestanding and thus not even dependent on a standard library to be present at runtime, making it a suitable choice for bare metal applications. It is also way smaller and much faster than the other established Unicode string libraries (ICU, GNU's libunistring, libutf8proc).

Version: 2.0.2 License: MIT GitHub
Reset

23 build(s) found
Builder Build Number Start Time Elapsed Time Watcher Build Status
15.arm64 8184 2025-03-06 15:28:04 0:00:11 4347 build successful
15 12604 2024-10-13 12:47:27 0:00:24 1249 build successful
14.arm64 3860 2024-01-13 15:20:45 0:00:12 1487 build successful
10.6 142565 2023-11-14 18:50:57 0:02:21 51390 build successful
10.6.x86_64 178039 2023-11-14 18:50:31 0:02:14 51432 build successful
14 9990 2023-11-11 15:39:59 0:00:17 1574 build successful
13 54535 2023-11-11 3:12:08 0:01:20 13751 build successful
13.arm64 41347 2023-11-10 11:11:16 0:00:08 13620 build successful
12.arm64 110902 2023-11-10 9:51:11 0:00:08 28003 build successful
10.11 241532 2023-11-10 9:44:44 0:00:37 78687 build successful
10.6 142200 2023-11-10 9:44:18 0:00:20 51218 failed install-port
10.6.x86_64 177637 2023-11-10 9:44:05 0:00:18 51260 failed install-port
11 133035 2023-11-10 9:43:53 0:00:42 39199 build successful
10.12 250265 2023-11-10 9:43:42 0:00:32 77480 build successful
10.14 186127 2023-11-10 9:43:25 0:00:36 60289 build successful
10.15 161979 2023-11-10 9:43:14 0:00:34 49276 build successful
10.9 252234 2023-11-10 9:43:01 0:00:30 78266 build successful
12 87497 2023-11-10 9:42:51 0:00:29 27996 build successful
10.13 210769 2023-11-10 9:42:42 0:00:27 69531 build successful
10.10 245541 2023-11-10 9:42:31 0:00:32 78574 build successful
10.8 154201 2023-11-10 9:42:22 0:00:42 49054 build successful
10.7 166180 2023-11-10 9:42:10 0:00:28 50998 build successful
11.arm64 107515 2023-11-10 9:42:00 0:00:15 39196 build successful