What is the difference between a Library and a Framework?

A library contains many pieces of functionality that can be individually selected and used. The pieces do not depend upon one another and so you are not locked into functionality you do not want. Ultimately this means you are not bound to a workflow and the code base is more adaptable to change.

A framework unlike a library sets out strictly how you will be working. It provides a workflow that can add value however is hard to change. Frameworks can speed up development allowing rapid development however they can result in changes required being impossible to implement.