Indeed, it's because strings in Nim are essentially just a sequence of bytes, sending ordinary text over a socket is also rather common so it is supported by default. To answer your other question: You will have to copy it into a string. I'm curious what your use case is though?
Yeah, it's best to create a whole message and send it all at once. With await a possibly bigger problem is the amount of Futures your are creating as a result of your multiple calls to send.