Perhaps we should raise an issue with Scala to fix the performance problem if it really is one (and we should measure that to confirm). It seems silly for every project to have to write its own IO utilities.

Also, do we use these utilities to read anything other than strings? Apologies if so as I'm not in a position to check.

Perhaps akka-streams will provide the ultimate solution here though given that NIO is slated.

Re your mention of the assets controller, I think there's just one place where a file is read for its digest key and that value is cached. scala.io is used.