Library vs Framework
Library vs framework explained with the inversion of control idea, plus real examples like React versus Angular.
A library is a tool you call when you need it, so your code stays in control. A framework provides the overall structure and calls your code at the right moments, so it stays in control.
Library vs Framework at a glance
| Library | Framework | |
|---|---|---|
| Who calls whom | Your code calls the library | The framework calls your code |
| Control | You control the flow of the application | The framework controls the flow |
| Flexibility | Use only what you need, mix freely | Expects you to follow its structure and conventions |
| Learning curve | Usually smaller, focused scope | Usually larger, covers a full application structure |
| Example | Lodash, Axios, a math utility package | Angular, Spring Boot, Ruby on Rails |
| Analogy | A tool from a toolbox you pick up when needed | A house frame you build your rooms inside of |
When to use each
Choose Library when
- You want to add a specific capability without adopting a whole architecture.
- You want maximum control over your application's structure and flow.
- You are integrating one utility into an existing codebase with its own conventions.
Choose Framework when
- You are starting a new project and want a proven structure to build inside of.
- You want built in conventions so a team can work consistently without inventing patterns.
- You want batteries included tooling like routing, dependency injection, or an ORM out of the box.
Inversion of control, the real difference
The core technical idea is called inversion of control. When you use a library, your code stays in charge and calls the library's functions whenever it wants. When you use a framework, that relationship flips. The framework defines the overall flow of the application and calls your code at specific points, like when a route matches or a component renders. You are plugging your code into someone else's structure.
Where the line gets blurry
React is a good example of the debate. It is often called a library because you can call its functions and mix it freely with other tools, but it also has strong opinions about how components should be structured. Angular, by comparison, dictates your project's file structure, dependency injection, and routing, which is why it is universally called a framework.
If asked directly whether React is a library or a framework, the strongest answer explains inversion of control rather than just picking a side. React lets you call its rendering functions when you want, which leans library, but its component model does still shape how you structure code.
Frequently asked questions
Is jQuery a library or a framework?
jQuery is a library. You call its functions to manipulate the DOM whenever you choose, and it does not dictate your application's overall structure.
Why do frameworks have a steeper learning curve?
Because you need to learn the framework's conventions, folder structure, and lifecycle before you can be productive, rather than just calling a function when you need it like with a library.
Can a project use both a library and a framework?
Yes, and this is extremely common. A Spring Boot framework based backend, for example, will typically pull in many independent libraries for tasks like logging, JSON parsing, or date handling.
Want more interview ready comparisons?
Browse every Library vs Framework style breakdown, or explore the full question library.
All comparisons Browse questions