On Sun, Apr 13, 2014 at 4:30 PM, Yitzchak Gale <gale@sefer.org> wrote:
Emmanuel Touzery wrote:Very nice! Why not upload it to hackage to make it easier
> I could not find a pure haskell library to parse EXIF so I wrote one
> (pretty basic so far):
> https://github.com/emmanueltouzery/hsexif
for others to share and collaborate?Yes, that's the plan as soon as I get the basics right and that I write some short documentation. Hopefully very quickly.Perhaps the function Data.Binary.Get.runGetOrFail is what
> I wrote it with binary-strict. I also considered binary, but I would like
> the library not to throw an exception if the file that it's given is not a
> JPEG or is a JPEG without EXIF, but rather return an Either. I didn't manage
> to do that with binary
you are looking for? Or perhaps the incremental strict interface?Ah yes... Actually I was a bit mislead because I found an haskell wiki stating that with binary it was impossible to catch the exceptions except in the IO monad and I took that at face value. I think runGetOrFail is what I want, I'll test it, thank you!
The binary-strict library is no longer maintained, since binary now also
> And then I realized that binary-strict was last updated in 2010, it seems
> cereal is recommended for strict binary file parsing nowadays.
> So, what should I do? Leave it as it is? Port to cereal? Port to binary?
provides a strict interface. Both binary and cereal are good choices.
Probably porting to binary would be easiest if you've already written
it for binary-strict, assuming runGetOrFail or the incremental interface
does what you want.Ok, then I'll try the non-strict binary first then. Most JPG files will be only a couple of megabytes and it wouldn't be THAT bad loading them entirely in memory but then, it seems a bit of a shame. With lazy though I'll have to work a bit on my strictness annotations I think.
Thanks for the hints! Hopefully I can port it to lazy binary and publish it on hackage soon enough...
Emmanuel