Libraries are special encryption keys that are sent down with a license. In the Java API, they are used to encrypt JAR files. In the Flex/AIR API, they are used to encrypt Modules, images, or other assets.
The advantage to encrypting with a library key rather than a software-product key is that a particular module or JAR file can be encrypted once, then used in multiple software products without having to re-encrypt it for each product. You control which products (or customers) can use a library-encrypted module/JAR using the Manage Libs screen.
Libraries must be defined and activated before they can be read through the Client API.
Library management is very similar to managing list variables. In fact, the list of available libraries is actually a special list variable called LKX_KEYS. At each level of the customer hierarchy, available libraries can be assigned. Libraries accumulate as they inherit just like list variable values. For Java, this means that a given customer might have access to run an encrypted jar file. For Flex/AIR, it might mean that the application can decrypt and run an encrypted mx:Module.