Here're some utilities which work with my .rec format, which is
basically the uncompressed format of lzma's matches.

The .rec file starts with .lzma header:
struct lzma_hdr {
  byte  opt;
  uint  dictsize;
  qword filesize;
and then there's an array of fixed-size match records:
struct lzma_rec {
  byte id; // match type
  byte sym; // literal, when present, unused otherwise 
  word len; // length, when present
  uint dist; // distance, when present
The whole point of this is that its much easier to implement LZ transformation to .rec
format, and compression can be tested with some good existing entropy coders.

Also there're some other utilities which work with the same format (delrep, markup tool etc).

Please tell me if something is missing.