I understand that the question is about reading blk files, but why do you need it ? You can ask bitcoin RPC all the data stored in these files. I also tried to read blk files last summer, and also found the tool https://github.com/ragestack/blockchain-parser/. But after that I found another tool https://github.com/blockchain-etl/bitcoin-etl. It can connect to node and get data about blocks, transactions, inputs and outputs. And as for me it works great.