AlexanderEllis / js-reading-list

JavaScript Reading List

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

JavaScript Reading List

This is a collection of JavaScript codebases to read. They're separated into 3 categories based on rough size.

Shorter codebases (<1000 lines of JS)

Name Description LOC Stars
JSON in JavaScript Douglas Crockford's implementation of JSON ~800 GitHub stars
Redux State management library ~380 GitHub stars
Hyperapp 1 kB JavaScript framework for building web applications. ~340 GitHub stars
Preact ⚛️ Fast 3kB React alternative with the same modern API. Components & Virtual DOM. ~650 GitHub stars
left-pad ⬅️ String left pad ~30 GitHub stars

Medium length codebases (1000-10k lines of JS)

Name Description LOC Stars
Lodash A modern JavaScript utility library delivering modularity, performance, & extras. ~2500 GitHub stars
Backbone.js (Annotated source) Give your JS App some Backbone with Models, Views, Collections, and Events ~1200 GitHub stars
Underscore.js (Annotated source) JavaScript's utility _ belt ~1200 GitHub stars
Express.js Fast, unopinionated, minimalist web framework for node. ~1800 GitHub stars
Moment.js Parse, validate, manipulate, and display dates in javascript. ~3500 GitHub stars
Immutable Immutable persistent data collections for Javascript which increase efficiency and simplicity. ~5000 GitHub stars
handlebars.js Handlebars provides the power necessary to let you build semantic templates effectively with no frustration. ~2700 GitHub stars
Ramda 🐏 Practical functional Javascript ~4000 GitHub stars
jQuery jQuery JavaScript Library ~6200 GitHub stars
Zepto.js Zepto.js is a minimalist JavaScript library for modern browsers, with a jQuery-compatible API ~2100 GitHub stars
Matter.js a 2D rigid body physics engine for the web ▲● ■ ~5000 GitHub stars

Large codebases (>10k lines of JS)

Name Description LOC Stars
React A declarative, efficient, and flexible JavaScript library for building user interfaces. ~75k GitHub stars
Angular One framework. Mobile & desktop. ~70k GitHub stars
AngularJS AngularJS - HTML enhanced for web apps! ~20k GitHub stars
npm a package manager for JavaScript ~14k GitHub stars
Vue.js 🖖 A progressive, incrementally-adoptable JavaScript framework for building UI on the web. ~13k GitHub stars

FAQ

Why did you make this?

Reading code is a great way to get a better understanding of a language by seeing how other people have done things. I wanted to have one place to keep a list and share it with the community.

Why didn't you include my favorite library foo.js?

Probably because I didn't think of it when making this list! Feel free to open a PR or an issue!

Why aren't your LOC calculations scientific?

It's much more important to get an idea of the general size of a library than it is to know exactly how many lines are in it. Most of these libraries are living codebases, and any specific number would also quickly be out of date.

Contributing

If you have any recommendations, please open an issue or a PR! Include a snippet about the code and your reasons why it should be included. The more the merrier!

I use a markdown table generator like this to generate the tables. If you're adding to a table, copy the markdown, paste it in, add a row, and generate it! I'll be doing the same to double check formatting is all set.

For star badges, I use http://shields.io/.

For lines of code, I use loc. I try to run it on only the src (or analogous) directory, and I only use the lines of JavaScript code (not including blank lines or comments).

For instance, here's the output from redux:

Coding: $ ./loc redux/src/
--------------------------------------------------------------------------------
 Language             Files        Lines        Blank      Comment         Code
--------------------------------------------------------------------------------
 JavaScript               9          653           68          201          384
--------------------------------------------------------------------------------
 Total                    9          653           68          201          384
--------------------------------------------------------------------------------

Although there may be many helpful comments, the total number of JS lines is a better way to understand size across packages.

About

JavaScript Reading List