Most of the constants should be collected in this class, most of which are primarily for internal use.
WarcReaderFactory.java: This factory can be used to create the various types of readers with optional buffering. You can either get compressed or uncompressed readers. There are also methods which can auto-detect whether or not a compressed reader is required.
WarcReader.java: Abstract reader class which is the base for the all the readers. It also defines the options which can be set on a reader. Currently only digest options.
WarcReaderCompressed.java: A reader implementation for reading compressed records.
WarcReaderUncompressed.java: A reader implementation for reading uncompressed records.
This class contains the record parser, fields and validation.