[Haskell-beginners] parsing exif file: binary, binary-strict, or cereal?

Emmanuel Touzery etouzery at gmail.com
Sun Apr 13 15:08:27 UTC 2014

On Sun, Apr 13, 2014 at 4:30 PM, Yitzchak Gale <gale at sefer.org> wrote:

> Emmanuel Touzery wrote:
> >  I could not find a pure haskell library to parse EXIF so I wrote one
> > (pretty basic so far):
> > https://github.com/emmanueltouzery/hsexif
> Very nice! Why not upload it to hackage to make it easier
> 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.

> > 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
> Perhaps the function Data.Binary.Get.runGetOrFail is what
> 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!

> >  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?
> The binary-strict library is no longer maintained, since binary now also
> 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...

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/beginners/attachments/20140413/afe7c930/attachment.html>

More information about the Beginners mailing list