Skip to main content

A library is a collection of resources providing data and/or services for developing independent software.

According to the FAQ, the subjects are accepted and may be tagged with the "library" tag:

  • Questions about the usage/complexity of a library in particular, or several libraries that provide more of the same features for a given language.
  • Questions about the process of designing a library

Also, the definition of a "library" is very close to the definition of a "framework". To help you choose between the two, please consider how Martin Fowler differentiates the two:

A library is essentially a set of functions that you can call, these days usually organized into classes. Each call does some work and returns control to the client.

Example: the Apache "Commons" libraries for Java.

A framework embodies some abstract design, with more behavior built in. In order to use it you need to insert your behavior into various places in the framework either by subclassing or by plugging in your own classes. The framework's code then calls your code at these points.

Example: the Spring Framework providing an IOC container.