Hmm, what about a sort of linked list of static arrays, that allocatesa new one when necessary?
Appender is not a container, and has no freedom on the data it manipulates. It has to be able to accept an array as input, and when it is finished, it needs to be able to return an actual array, so that's arguably out of the question.