gitmyhub

umbrella

TypeScript ★ 3.8k updated 12d ago

⛱ Broadly scoped ecosystem & mono-repository of 215 TypeScript projects (and ~185 examples) for general purpose, functional, data driven development

A monorepo of 215 independent TypeScript libraries covering functional programming, geometry, graphics, data structures, color, WebGL, parsers, and more. Pick only the packages you need, there is no shared framework tying them together.

TypeScriptJavaScriptESMWebGLWebAssemblysetup: moderatecomplexity 3/5

thi.ng/umbrella is a large, open-source monorepo containing 215 individual TypeScript libraries. Unlike a typical monorepo that houses a single product, this one is a broad collection of independent building blocks covering a wide range of programming topics. The project started in 2015 and has been maintained actively since then. Note that the project has moved its primary home to Codeberg; the GitHub copy is now a read-only mirror.

The libraries span a wide set of areas: functional and reactive programming patterns, 2D and 3D geometry, data structures, color manipulation, WebGL graphics, custom language tools (DSLs and parsers), WebAssembly interop, digital signal processing, and more. Because each package is independent, you can install only the ones you need without pulling in the rest. There is no shared runtime or global configuration tying them together.

The README explicitly states that this project is not a framework. It does not offer a single approach that handles everything for you. Instead, it provides about 215 small, focused libraries that you can combine however fits your project. Each package is versioned on its own, distributed as an ESM module (compatible with modern JavaScript tooling), and includes TypeScript type definitions and a changelog. API documentation for every package is generated automatically and hosted at docs.thi.ng.

About 185 example projects are also included in the monorepo to show how the libraries work in practice. Because the scope is so broad, the repository does not provide a single getting-started tutorial. Instead, it points newcomers toward the examples, per-package readmes, and a tag-based browser on the thi.ng website for exploring the ecosystem.

The full README is longer than what was shown.

Where it fits