zigstr
wtfiles
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
zigstr
- A Review of the Zig Programming Language (Using Advent of Code 2021)
-
Resizable string in Zig?
For Unicode text processing you can take a look at Ziglyph https://github.com/jecolon/ziglyph and for a sample UTF-8 string structure, Zigstr https://github.com/jecolon/zigstr . (bias alert: I'm the author of both. :^D )
- Maintain It with Zig
wtfiles
-
Maintain It with Zig
Keep in mind that filesystem paths aren't strings. On Linux, they are raw bytes without any fixed encoding (but usually UTF-8 on UTF-8-based locales), and on Windows, they are sequences of 16-bit codepoints which are expected to be UTF-16 but not validated.
Rust's OsStr is my favorite approach so far. It stores Linux's raw bytes as-is, and stores Windows's possibly-valid UTF-16 as WTF-8. This makes path management "just work", with the ability to operate normally on invalid UTF-8 or UTF-16 paths, and zero-copy conversion from UTF-8/ASCII strings to OsStr (though converting OsStr into UTF-16 requires parsing). (Qt's QString-based file dialogs on Linux fail to convert invalid UTF-8 paths like those in https://github.com/petrosagg/wtfiles into QString, causing Qt-based apps to open/save the wrong paths.)
However there are difficulties in printing an OsStr. For example, a file dialog that shows filenames as raw bytes can't show non-Latin/Unicode characters in a human-readable form, and a file dialog that shows filenames as Unicode strings can't handle invalid Unicode filenames. GTK3 file dialogs show filenames as Unicode strings, and when encountering files with invalid Unicode names, instead displays "file�name.txt (invalid encoding)".
Worse yet, how should a file dialog allow users to rename files? If it's based around byte arrays, the user can't enter Unicode characters directly, and if it's based around Unicode (or a locale-specific text encoding), it can't display existing files with invalid Unicode/etc. in the name (probably not an issue if it allows the user to rename to a valid name), nor allow users to enter invalid Unicode (which is not an issue IMO).
What are some alternatives?
mach - zig game engine & graphics toolkit
RIIR - why not Rewrite It In Rust
ziglyph - Unicode text processing for the Zig programming language.
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
ohmygentool - LLVM/Clang based bindings generator for D language
utfcpp - UTF-8 with C++ in a Portable Way
dstep - A tool for converting C and Objective-C headers to D modules
arocc - A C compiler written in Zig.