I'm looking for a way to read specific files from a rar archive into memory.  Specifically they are a collection of numbered image files (I'm writing a comic reader).  While I can simply unrar these files and load them as needed (deleting them when done), I'd prefer to avoid that if possible.
That all said, I'd prefer a solution that's cross platform (Windows/Linux) if possible, but Linux is a must.  Just as importantly, if you're going to point out a library to handle this for me, please understand that it must be free (as in beer) or OSS.
It seems like the limitation that rarsoft imposes on derivative works is that you may not use the unrar source code to create a variation of the RAR COMPRESSION algorithm.  From the context, it would appear that it's specifically allowing folks to use his code (modified or not) to decompress files, but you cannot use them if you intend to write your own compression code.  Here is a direct quote from the license.txt file I just downloaded:

The UnRAR sources may be used in any software to handle RAR
  archives without limitations free of charge, but cannot be used
  to re-create the RAR compression algorithm, which is proprietary.
  Distribution of modified UnRAR sources in separate form or as a
  part of other software is permitted, provided that it is clearly
  stated in the documentation and source comments that the code may
  not be used to develop a RAR (WinRAR) compatible archiver.

Seeing as everyone seemed to just want something that would allow them to write a comic viewer capable of handling reading images from CBR (rar) files, I don't see why people think there's anything keeping them from using the provided source code.
Read content of RAR file into memory in Python