Python standard library for TypeScript - itertools, functools, collections, datetime, re, and more. Zero dependencies. Full TypeScript support.
npm install pythonlibPython's Beloved Standard Library — Now in TypeScript







---
Miss itertools.combinations? Love collections.Counter? Wish you had functools.lru_cache in
JavaScript?
pythonlib brings Python's most powerful utilities to TypeScript — zero dependencies, full type
safety, tree-shakeable.
``bash`
npm install pythonlib
| What You Get | Why It Matters |
| --------------------------- | ------------------------------------------------- |
| Zero dependencies | No supply chain bloat, minimal attack surface |
| Full TypeScript support | Generics, type inference, autocomplete everywhere |
| Tree-shakeable | Bundle only what you use |
| camelCase API | Feels native in TypeScript |
| Works everywhere | Browsers, Node.js, Deno, Bun, Workers |
`typescript
import { combinations, permutations, product } from "pythonlib/itertools"
// All 2-element combinations
[...combinations([1, 2, 3], 2)]
// → [[1, 2], [1, 3], [2, 3]]
// Cartesian product
[...product(["a", "b"], [1, 2])]
// → [["a", 1], ["a", 2], ["b", 1], ["b", 2]]
`
`typescript
import { Counter, defaultdict, deque } from "pythonlib/collections"
// Count anything
const votes = new Counter(["alice", "bob", "alice", "alice"])
votes.mostCommon(1) // → [["alice", 3]]
// No more "undefined" checks
const graph = defaultdict(() => [])
graph.get("node1").push("node2") // Just works!
// Double-ended queue with O(1) operations
const dq = new deque([1, 2, 3])
dq.appendLeft(0) // [0, 1, 2, 3]
dq.pop() // [0, 1, 2]
`
`typescript
import { lruCache, partial, reduce } from "pythonlib/functools"
// Memoization with one line
const fib = lruCache((n: number): number => (n <= 1 ? n : fib(n - 1) + fib(n - 2)))
fib(100) // Instant, even for large values
// Partial application
const greet = (greeting: string, name: string) => ${greeting}, ${name}!`
const sayHello = partial(greet, "Hello")
sayHello("World") // → "Hello, World!"
`typescript
import { range, enumerate, zip, sorted, reversed } from "pythonlib"
// Python-style range
for (const i of range(5)) {
} // 0, 1, 2, 3, 4
for (const i of range(1, 10, 2)) {
} // 1, 3, 5, 7, 9
// Enumerate with index
for (const [i, item] of enumerate(["a", "b", "c"])) {
console.log(i, item) // 0 "a", 1 "b", 2 "c"
}
// Zip multiple iterables
;[...zip([1, 2, 3], ["a", "b", "c"])]
// → [[1, "a"], [2, "b"], [3, "c"]]
`
| Module | Highlights | Docs |
| ----------------------- | ----------------------------------------------------------- | ------------------------------------------------------------------------ |
| pythonlib | range, enumerate, zip, sorted, len, min, max | → |pythonlib/itertools
| | chain, combinations, permutations, product, cycle | → |pythonlib/functools
| | lruCache, partial, reduce, pipe, compose | → |pythonlib/collections
| | Counter, defaultdict, deque, OrderedDict | → |pythonlib/math
| | sqrt, floor, ceil, factorial, gcd, pi | → |pythonlib/random
| | randInt, choice, shuffle, sample, random | → |pythonlib/datetime
| | datetime, date, time, timedelta | → |pythonlib/re
| | search, match, findAll, sub, compile | → |pythonlib/json
| | loads, dumps with Python semantics | → |pythonlib/string
| | Template, capWords, ascii_lowercase | → |pythonlib/os
| | path.join, environ, getcwd | → |pythonlib/pathlib
| | Path class for filesystem operations | → |pythonlib/glob
| | File pattern matching | → |pythonlib/hashlib
| | md5, sha256, sha512 hashing | → |pythonlib/base64
| | Base64 encoding/decoding | → |pythonlib/uuid` | UUID generation | → |
|
Works everywhere JavaScript runs:
- Node.js (v22, v24)
- Bun
- Deno
- Browsers (Chrome, Firefox, Safari)
- Edge (Cloudflare Workers, Vercel, AWS Lambda)
| Resource | Description |
| ---------------------------------------------------------------------------- | ------------------------------------------ |
| Homepage | Project overview and quick start |
| Runtime Guide | Detailed usage guide |
| API Reference | Complete API documentation for all modules |
- python2ts — Transpile Python to TypeScript
automatically
- GitHub — Source code, issues, contributions
welcome
MIT © Sebastian Software GmbH