ExifTool[0] does all that from the command line. I use it for automating my photo organization workflow and, as a bonus, I use it for reading the metadata of damn near any filetype.
Know that although ExifTool is written in perl, you can run it in "batch mode" which makes it quite fast--only a couple of ms to parse a file. I've written an open source library to manage the subprocesses for you if you're using node.js (and I also wrote the ruby variant ages ago):
https://github.com/photostructure/exiftool-vendored.js