Why idx files?

why gluoncv RecordFileDetection needs idx files?
isn’t the purpose of .rec to conveniently pack together data, labels and index?..

From the docs:

*.idx file is used to provide random access to the binary file

The .rec format only gives sequential access. Because images can have different sizes you can’t easily access from imgM to imgN by jumping a fixed amount of bytes. I guess we could have imagined a format where the *.idx information is present at the beginning of the file, but as it stands the *.rec only contains images and label information.