benchmark: implement select-based async client
runtime: tune Packing.unpack for fewer allocations
runtime: simplify Packing.pack_string