glob

The most correct and second-fastest shell-style file pattern matching library for Node.js.

Library
npm
v13.0.6
8,712 stars
BlueOak-1.0.0

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
59 /100 Fair
Development Activity 60
Maintenance 16
Community 60
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
86 /100 Excellent
Architecture 87
Code Quality 88
Innovation 85
Learning Curve 82

Glob resolves shell-style wildcard patterns like **/*.js into lists of matching file paths, giving Node.js programs the same globbing power the Unix shell has at the command line. It supports globstar recursion, brace expansion, character classes, negation, and fine-grained ignore rules, returning results as arrays, async/sync iterators, or backpressure-aware Minipass streams.

Authored by Isaac Z. Schlueter and depended on by npm itself, ESLint, Mocha, and thousands of other build tools, glob is one of the most widely installed packages in the JavaScript ecosystem with hundreds of millions of weekly downloads. Version 13 is written in TypeScript, ships both ESM and CommonJS builds, and exposes a rich options surface for cwd control, symlink handling, file-type objects, and cancellation.

What You Get

  • Async and synchronous APIs (glob, globSync) that resolve to arrays of matching file paths
  • Streaming and iterator interfaces (globStream, globIterate) for processing large result sets with backpressure
  • A reusable Glob class that caches filesystem reads across repeated walks in the same directory tree
  • Rich options including globstar recursion, brace expansion, custom ignore functions, withFileTypes Path objects, and AbortSignal cancellation
  • First-class TypeScript types with dual ESM and CommonJS builds

Common Use Cases

  • Collecting source files for build tools, bundlers, and test runners
  • Selecting files to lint, format, or transform by wildcard pattern
  • Cleaning or copying files matching a pattern in scripts and task runners
  • Streaming large directory trees while filtering with custom ignore rules

Under The Hood

Architecture The public surface in src/index.ts re-exports the Glob class (src/glob.ts) and thin functional wrappers (glob, globSync, globStream, globIterate and their sync variants) that each construct a Glob and delegate to it. src/glob.ts normalizes options and parses the input into immutable Pattern objects (src/pattern.ts), which the Processor (src/processor.ts) walks against the filesystem via the GlobWalker/GlobStream machinery in src/walker.ts. Directory reads are delegated to path-scurry for cached, symlink-aware traversal, individual path segments are matched with minimatch, and results are emitted through minipass streams so async, sync, iterator, and streaming call styles all share one core walk. Ignore logic lives in src/ignore.ts, and src/has-magic.ts provides magic-character detection.

Tech Stack Written in TypeScript targeting Node 18/20/22+, glob has just three runtime dependencies: minimatch (pattern-to-regex compilation and escape/unescape), minipass (streams), and path-scurry (cached filesystem walking). It builds with tshy to emit both ESM and CommonJS outputs plus minified bundles via esbuild, is linted with oxlint, and formatted with Prettier.

Code Quality The repository has an extensive test/ directory (40+ tap test files covering absolute paths, symlinks, custom filesystems via memfs, ignore rules, Windows path handling, and bash-comparison fixtures), with tap snapshots committed. The code is strongly typed with heavily overloaded signatures so return types narrow correctly based on the withFileTypes option, and the walker separates async and sync paths explicitly rather than papering over them.

API Design The API is ergonomic and progressive: a one-line await glob('**/*.js') covers the common case, while the Glob class, streams, and iterators serve advanced needs, and a prior Glob instance can be passed as the options object to share caches. TypeScript overloads make withFileTypes return the right type automatically, and the README is exhaustive with runnable examples for every method and option. As of v13 the CLI moved to a separate glob-bin package, keeping the library dependency lean.

Used by 84 apps in this directory

TypeScript
97%
Other

Outline

Collaboration · Knowledge Management

40,729

A fast, real-time collaborative knowledge base for growing teams built on React, Node.js, and ProseMirror.

View details
91
Repo Health
87
Technical
68
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
JavaScript
64%
AGPL 3.0

overleaf

Collaboration · Productivity

18,188

Open-source, real-time collaborative LaTeX editor with sandboxed compilation and full TeXLive support for self-hosted academic and research teams.

View details
87
Repo Health
80
Technical
62
Dependency
Built with
JavaScript 64%
TypeScript 30%
Updated 3 weeks ago
TypeScript
99%
AGPL 3.0

Pangolin

Networking

22,937

An open-source, identity-based zero-trust remote access platform built on WireGuard — a self-hostable alternative to Cloudflare Tunnel and Twingate with SSO, OIDC, and tunneled reverse proxying.

View details
87
Repo Health
68
Technical
68
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
Python
49%
Other

Arize Phoenix

Analytics · Devops · Monitoring

11,641

Open-source AI observability platform for tracing, evaluating, and debugging LLM applications with built-in intelligence and MCP support.

View details
90
Repo Health
88
Technical
67
Dependency
Built with
Python 49%
TypeScript 42%
Updated 1 weeks ago
TypeScript
96%
MIT

Pi

AI Agents

109,828

An open-source, self-extensible agent harness and coding agent CLI — a modular runtime (agent core, unified multi-provider LLM API, TUI) with no built-in permission system by default, documented containerization patterns for sandboxing instead.

View details
88
Repo Health
73
Technical
74
Dependency
Built with
TypeScript 96%
Updated 1 weeks ago
TypeScript
89%
MIT

Plasmic

CMS · Design Tools · Low Code Platforms

7,048

The open-source visual builder that lets teams design React apps and websites with drag-and-drop while integrating seamlessly with your codebase.

View details
81
Repo Health
78
Technical
64
Dependency
Built with
TypeScript 89%
Updated 1 weeks ago
TypeScript
89%
MIT

Prime Agent

AI Agents · AI Code Assistants · Developer Tools

21,340

An open-source coding and research agent built around a Recursive Language Model that treats context as variables and a persistent Python REPL as its only tool.

View details
85
Repo Health
89
Technical
70
Dependency
Built with
TypeScript 89%
Updated 1 weeks ago
TypeScript
97%
MIT

Promptfoo

AI Development

25,506

An open-source CLI and library for evaluating and red-teaming LLM applications — replace trial-and-error prompt engineering with systematic evals, vulnerability scanning, and CI/CD integration.

View details
90
Repo Health
73
Technical
68
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
TypeScript
99%
MIT

React Cosmos

Developer Tools

8,686

An open-source sandbox for developing and testing React and React Native UI components in isolation, with pluggable bundler support for Vite and Webpack.

View details
74
Repo Health
69
Technical
73
Dependency
Built with
TypeScript 99%
Updated 2 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers