Skip to main content

Side by side

LibraryvsFramework

What is the difference between a library and a framework?

Updated 2 min read6 differences

In short

A library is code you call when you need it, while a framework provides your app's structure and calls your code. You call a library; a framework calls you.

Library

A library is a collection of ready-made code, such as functions and classes, that a program calls to do common jobs without writing that code itself.

Read the page on Library

Framework

A framework is a reusable foundation of code, tools, and conventions that provides the structure of an application, so developers only fill in their own logic.

Read the page on Framework

Library and Framework compared

AspectLibraryFramework
Who is in controlYour code calls the libraryThe framework calls your code
StructureYou design the application's structureThe framework defines it
ScopeUsually one focused jobA whole application skeleton
Replacing itUsually easyUsually hard, the code is built around it
Learning curveLearn just the functions you useLearn its conventions and lifecycle
ExamplesLodash, Axios, NumPy, ReactDjango, Spring, Angular, Next.js, Rails

The difference, explained

Both are reusable code written by someone else, so the difference isn't size or quality but control. With a library, your program is in charge: it decides when to call formatDate() or axios.get(), gets a result and carries on. With a framework, the framework is in charge: it starts the application, handles the request or the screen, and calls the functions and classes you wrote at the points it defines.

This reversal is called inversion of control. A web framework such as Django or Spring receives every HTTP request, routes it, and calls your view or controller. A testing framework such as Jest finds your test functions and runs them. You fill in the blanks the framework leaves, following its conventions for where files go and how things are named.

That trade-off shapes projects. Frameworks give structure, sensible defaults and a lot of built-in functionality, so teams move fast and code looks similar across projects, but they are harder to swap out later. Libraries are easy to add, replace or combine, but you design the overall structure yourself.

A common misconception is that anything large must be a framework. React describes itself as a library for building user interfaces, because your code decides where to render it; Next.js, built on top of React, is a framework because it controls routing, rendering and the build. Many tools sit somewhere in between.

Which one should you use?

Choose Library when…

  • You need one specific capability, such as dates, HTTP or charts.
  • You want to keep control over your application's structure.
  • You may need to swap the tool for another later.

Choose Framework when…

  • You are building a whole application and want proven structure.
  • Your team benefits from shared conventions and built-in features.
  • Speed of getting started matters more than full flexibility.

Readers ask

Is React a library or a framework?

React calls itself a library for user interfaces. It handles components and rendering, while routing and data loading come from other libraries or from frameworks built on it, such as Next.js.

What is inversion of control?

A design where a framework controls the flow of the program and calls code you provide, instead of your code calling the framework. It is the main thing that distinguishes frameworks from libraries.

Can a project use both libraries and frameworks?

Yes, almost every project does. A typical app runs on one framework and uses many libraries inside it for specific tasks.

Read a random page
Open today's review
Switch to the dark theme
Read this page in Türkçe

More

Settings