A TypeScript port of pandas, built from first principles using Autoloop โ an automated research and experimentation platform that runs iterative optimization loops on GitHub Agentic Workflows.
๐ฎ Try the interactive playground โ
TSB is named after the tsessebe (tseh-SEH-bee ยท IPA /tsษหsษbi/) โ a southern African antelope.
Project conventions
- Package name:
tsb, e.g.import { DataFrame } from 'tsb' - Runtime & tooling: Bun for everything โ runtime, bundler, test runner, package manager
- Language: TypeScript in strictest mode โ no
any, noascasts, no@ts-ignore, no escape hatches - Dependencies: Zero for core library. External deps only where absolutely required for non-core tooling (e.g. Playwright, WASM toolchains).
- Linting: Biome with all rules enabled, zero warnings tolerated
- Testing: 100% coverage โ unit, property-based (fast-check), fuzz, and Playwright e2e for the web playground
- Build from scratch: Every pandas feature is implemented from first principles. No wrapping or porting existing JS/TS data libraries.
Goals
- Full feature parity with pandas โ identical APIs adapted to TypeScript conventions and idiomatic structures. Every pandas feature is built from scratch, ground up, first principles. No ports of existing JS/TS data libraries.
- Interactive web playground โ every feature ships with a rich, interactive tutorial, deployed to GitHub Pages. WASM where needed and useful.
- Performance โ aggressive optimization throughout. Speed is a first-class concern.
- Exhaustive testing โ pandas' own test suite as a baseline, extended with property-based testing, fuzzing, and e2e coverage. Target: 100%.
