This is a simple, dynamic string class that can be used standalone. It can handle arbitrary blocks of data through ss_append_block() including blocks with embedded nuls.
ss.h
ss.c