add multi-thread support.
rewrite pack/unpack.
update benchmark.
pack/unpack now works on a single file.