[racket] Binary class: general approach to binary data parsing and writing

From: Neil Van Dyke (neil at neilvandyke.org)
Date: Sun Jun 15 21:59:24 EDT 2014

Roman, this looks good.

I think one good test of your abstractions would be to parse JPEG Exif 
with some MakerNotes.  IIRC, you have to things like read a value that 
is an offset from some other position (from top of file, start of 
header, current position...), to follow linked lists, and to have 
conditionals.

Another test would be getting video metadata out of popular video stream 
and container formats.  This would also be very useful for working with 
video files.

Some documentation references are here:
http://www.neilvandyke.org/racket-mediafile/#%28part._.Content_.Types%29
I didn't come up with a generalized high-level abstraction, but looks 
like you're on your way to doing it better than I did.

Neil V.

Roman Klochkov wrote at 06/15/2014 02:42 PM:
> I've written universal library for parsing binary files or their parts 
> into Racket objects.
> You may install it with 'raco pkg install binary-class'. This library 
> has verbose documentation and easy syntax.
> You simply describe your data in terms of class fields and load the 
> object from the file.
>
> I've written parsers for MP3 ID3 tags (binary-class-mp3 package) and 
> DBF files (binary-class-dbf package, no docs yet, only Readme at 
> https://github.com/Kalimehtar/binary-class-dbf). You may treat them as 
> usage examples for the library.
>
> Please, give me feedback. Maybe I can do something better, or maybe 
> somebody write another file format to the library.
>
>
> -- 
> Roman Klochkov


Posted on the users mailing list.