locutusjs/locutus
locutusjs/locutus has 3,760 GitHub stars and 1,080 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-06 18:17 UTC. Last push 2026-10-23.
Bringing stdlibs of other programming languages to TypeScript for fun
Measured star growth
- in 24h
- 0
- in 7 days
- Collecting history
- in 15 days
- Collecting history
- in 1 month
- Collecting history
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalLocutus
All your standard libraries will be assimilated into our JavaScript TypeScript collective. Resistance is futile.
Locutus is ~500 TypeScript implementations of standard library functions from PHP, Go, Python, Ruby, C, and more. Each function is individually importable and tree-shakeable.
Most of these started as rainy Sunday afternoon puzzles. Some are genuinely useful. Some are just fun to write. All of them are a way to learn how different languages solve the same problems.
Scope
Locutus ports function behavior, not foreign runtime baggage. We reimplement standard-library semantics in TypeScript, but keep API boundaries JavaScript-native.
That means we do not recreate alien language data structures or object models in Locutus APIs (for example: Go slices/maps, Python tuples/bytes, Ruby symbols, C structs/pointers, Perl refs).
Historic exception: for PHP compatibility, plain JS objects may be treated as associative arrays when locutus.objectsAsArrays is enabled.
Example: a Go date-formatting port in Locutus should accept a JavaScript Date and return a string, not a custom Go time.Time object.
Install
npm install locutus
Locutus uses pragmatic versioning: patch is the default even for function-level parity fixes; see
CONTRIBUTING.md#versioning for exact bump criteria.
Use
import { sprintf } from 'locutus/php/strings/sprintf'
const effectiveness = 'futile'
console.log(sprintf('Resistance is %s', effectiveness))
// Resistance is futile
import { Contains } from 'locutus/golang/strings/Contains'
console.log(Contains('Locutus', 'cut'))
// true
Bundle Size
For bundle-sensitive browser builds, prefer per-function deep imports over category index imports.
Good:
import { sprintf } from 'locutus/php/strings/sprintf'
Avoid in browser bundles:
import { sprintf } from 'locutus/php/strings/index'
Why:
- deep imports only pull the function you asked for and its real dependencies
- category index imports can force bundlers to traverse many unrelated exports in the same namespace
- this matters most in prebundled UMD/browser artifacts where downstream tree-shaking cannot recover later
If you are publishing your own browser bundle on top of Locutus, treat deep imports as the default.
Browser Compatibility (Copy-Paste Snippets)
Code shown on function pages (Module JS / Standalone JS) targets:
baseline widely available with downstream
Package runtime targets:
- Node:
engines.node >= 22 - Published dist output (
dist/CommonJS +dist/esmESM):ES2022
If your application targets older browsers, treat Locutus snippets like normal application code:
- transpile to your target (for example with TypeScript, Babel, SWC, or esbuild)
- add required polyfills for missing APIs in your environment
- validate with your own Browserslist target and browser test matrix
Locutus does not inject polyfills into copy-paste snippets by default.
Development
Some guidelines and instructions can be found in CONTRIBUTING.md
Quick commands:
yarn check- format + lint + testyarn test:parity- cross-language verificationyarn test- full test suiteyarn lint- Biome checkyarn fix:biome- auto-fix
License
MIT, except for src/php/bc/ and src/php/_helpers/_bc.js which are LGPL-2.1 (derived from PHP's bcmath/Libbcmath). See LICENSE for details.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,471 starspublic-apis/public-apis
A collective list of free APIs
496,782 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
438,352 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,084 stars