Rtrans is a project mainly written in Ruby, it's free.
cm-transfer in ruby
data_dir +
metadata structrue: [format_version, size_per_index, index_num_per_file, index_file_num_per_dir,max_size_data_file, data_blk_size, need_compress], size: 2+4+4+4+8+4+2 = 28 bytes index structrue: [transid, type_no, dir_no, file_no, data_blk_no, data_len, checksum], size: 8+4+4+4+8+4+4 = 36 data structure: [transid, checksum, raw_datapack]
format_version: 16-bits unsigned integer (S) size_per_index: 32-bits unsigned integer (L) index_num_per_file: 32-bits unsigned integer (L) index_file_num_per_dir: 32-bits unsigned integer (L) max_size_data_file: 64-bits unsigned integer (Q) data_blk_size: 32-bits unsigned integer (L) need_compress: 16-bits unsigned integer (S)
transid: 64-bits unsigned integer (Q) type_no: 32-bits unsigned integer (L) dir_no: 32-bits unsigned integer (L) file_no: 32-bits unsigned integer (L) data_blk_no: 64-bits unsigned integer (Q) data_len: 32-bits unsigned integer(L) check_sum: 32-bits unsigned integer(L) CRC check sum
NOTICE: