This is kind of a bikeshed argument, but I'd prefer if the view was labeled as such. So instead of str_t it would be strview. Rust makes this same mistake IMHO and it causes a lot of confusion for beginners. I would personally call the strbuf_t strstore but that's even more nitpicky.
Naming things is one of the hardest problems in CS.