Binary Files

At a sufficiently low level of abstraction, all files are “binary” in the sense that they just contain a bunch of numbers encoded in binary form. However, it’s customary to distinguish between text files, where all the numbers can be interpreted as characters representing human-readable text, and binary files, which contain data that, if interpreted as characters, yields nonprintable characters.1

Binary file formats are usually designed to be both compact and efficient to parse—that’s their main advantage over text-based formats. To meet both those criteria, they’re usually composed of on-disk structures that are easily mapped to data structures that a program might use to represent the same data in memory.2

The library will give you an easy way to define the mapping between the on-disk structures defined by a binary file format and in-memory Lisp objects. Using the library, it should be easy to write a program that can read a binary file, translating it into Lisp objects that you can manipulate, and then write back out to another properly formatted binary file.