Port Mortem / Repo pool

Recommended Repo Pool

This is a recommendation, not a requirement.

Pick one from here, or bring your own public repo, no pre-approval needed. A bring-your-own repo just needs to be at least 1,000 source lines (and under ~8,000), OSS-licensed, and not already ported to your target language. A test suite is optional but recommended. This list is a curated starting point of small, pure-logic libraries across the eight tracks.

Before you commit to a repo, check its license. If it has a test suite, confirm it runs on a clean clone. Tests are optional here, but passing the original suite unmodified is the ideal to aim for, not a requirement. Line counts below are rough estimates, not measured, so verify with cloc or tokei. Each track's suggested range is on its track card; the sweet spot is the Standard band (~2k–8k lines), and smaller Sprint repos are welcome too.

A C → Rust 10

Repository Port ~LOC Size License What it does
DaveGamble/cJSON C → Rust,Zig 2000-3000 Standard (2k–8k) MIT ANSI-C JSON parser/printer
lammertb/libcrc C → Rust,Zig 2000-3500 Standard (2k–8k) MIT CRC16/32/64, CRC-CCITT, NMEA checksums
ludocode/mpack C → Rust,Zig 6000-8000 Standard (2k–8k) MIT MessagePack encoder/decoder (tree parser + writer)
clwi/CWPack C → Rust 1000-1500 Sprint (500–2k) MIT ANSI-C no-alloc MessagePack encoder/decoder
codeplea/tinyexpr C → Rust,Zig 600-900 Sprint (500–2k) zlib Recursive-descent math expression evaluator
jserv/MathEX C → Rust,Zig 600-1000 Sprint (500–2k) MIT String math-expression evaluator w/ vars & funcs
phoboslab/qoi C → Rust,Zig 600 Sprint (500–2k) MIT Quite OK Image lossless codec (single header)
benhoyt/inih C → Rust,Zig 300-500 Under 500 BSD-3-Clause Minimal embeddable INI parser
victoroliv2/quite-ok-image-format C → Rust 400-700 Under 500 check license from-scratch C99 QOI reference
zserge/jsmn C → Rust,Zig ~200 Under 500 MIT Minimal JSON tokenizer (embedded)

B Zig → Rust 18

Repository Port ~LOC Size License What it does
frmdstryr/zig-datetime Zig → Rust 1800-2000 Standard (2k–8k) MIT datetime/calendar arithmetic + formatting
kubkon/zig-yaml Zig → Rust 5000-8000 Standard (2k–8k) MIT YAML 1.2 parser, untyped + typed mapping
mattyhall/tomlz Zig → Rust 1500-2500 Standard (2k–8k) MIT well-tested TOML v1.0.0 parser/serializer
pblischak/zprob Zig → Rust 2000-4000 Standard (2k–8k) LGPL-3.0 RNG distribution sampling + mass/density fns
sam701/zig-toml Zig → Rust 2000-2500 Standard (2k–8k) MIT LL TOML v1.1 parser into Zig structs
tiehuis/zig-regex Zig → Rust 3000 Standard (2k–8k) MIT regex engine: NFA compile + Pike/backtracking VM
euantorano/ip.zig Zig → Rust 500-900 Sprint (500–2k) BSD-3-Clause IPv4/IPv6 address types and utilities
matthewtolman/zig_csv Zig → Rust 1500-2500 Sprint (500–2k) MIT CSV writer + map/column/zero-alloc/stream parsers
ziglibs/s2s Zig → Rust 500-800 Sprint (500–2k) MIT runtime binary serialize/deserialize for Zig types
beho/zig-csv Zig → Rust 300-600 Under 500 MIT non-allocating CSV tokenizer with iterator API
daneelsan/brainfuckz Zig → Rust 300-600 Under 500 MIT Brainfuck interpreter/CLI
dantecatalfamo/brainfuck-zig Zig → Rust 150-300 Under 500 MIT embeddable Brainfuck interpreter
deatil/zig-md2 Zig → Rust 200-350 Under 500 Apache-2.0 MD2 hash
deatil/zig-md4 Zig → Rust 200-350 Under 500 Apache-2.0 MD4 hash
gernest/base32 Zig → Rust 300-500 Under 500 MIT base32 encode/decode (std/hex/Crockford)
SasLuca/zig-nanoid Zig → Rust 200-400 Under 500 MIT tiny URL-friendly unique ID generator
Vexu/zuri Zig → Rust 300-500 Under 500 MIT URI parser
notCalle/parzig Zig → Rust unknown unknown check license Parser-combinator library for Zig

C TypeScript → Go 6

Repository Port ~LOC Size License What it does
harrisiirak/cron-parser TypeScript → Go Standard (est) Standard (2k–8k) MIT cron expression parser/iterator with timezone
GoogleChromeLabs/jsbi TypeScript → Go,Rust 1892 Sprint (500–2k) Apache-2.0 pure-JS ECMAScript BigInt implementation
thachnn/semver-ts TypeScript → Go 1500-2500 Sprint (500–2k) ISC (verify) SemVer parser/comparator in TS
alexewerlof/micromustache TypeScript → Go <400 Under 500 MIT fast small variable-interpolation Mustache subset
gregoranders/ts-csv TypeScript → Go 200-500 Under 500 check license simple RFC-style CSV parser
ka-weihe/fastest-levenshtein TypeScript → Go 100-150 Under 500 MIT Fastest Levenshtein (Myers bit-parallel)

D Python → Rust 17

Repository Port ~LOC Size License What it does
jquast/wcwidth Python → Rust 5000-8000 Standard (2k–8k) MIT POSIX wcwidth/wcswidth terminal char-width
kiorky/croniter Python → Rust 1500-2500 Standard (2k–8k) MIT parse cron expr and iterate datetimes
life4/textdistance Python → Rust 2000-3500 Standard (2k–8k) MIT 30+ string-distance algorithms, common interface
mdomke/schwifty Python → Rust 2000-4000 Standard (2k–8k) check license IBAN parsing/validation and BIC handling
SethMMorton/natsort Python → Rust 2000-3000 Standard (2k–8k) MIT natural (human) sort ordering of strings
byroot/pysrt Python → Rust 700-1200 Sprint (500–2k) GPL-3.0-only SubRip (.srt) subtitle parser/manipulator
erikrose/parsimonious Python → Rust 1500-2500 Sprint (500–2k) MIT Fast pure-Python PEG parser
jpvanhal/inflection Python → Rust 500-1000 Sprint (500–2k) MIT pluralize/singularize/camelize/underscore English
oubiwann/metaphone Python → Rust 500-900 Sprint (500–2k) check license Metaphone and Double Metaphone encoders
python-parsy/parsy Python → Rust <800 Sprint (500–2k) MIT monadic parser-combinator library, stdlib-only
rbarrois/python-semanticversion Python → Rust 1000-1800 Sprint (500–2k) BSD-2-Clause SemVer 2.0.0 parse/compare + npm-style specs
scrapinghub/price-parser Python → Rust 500-1000 Sprint (500–2k) BSD-3-Clause extract price + currency from raw text
itsrainingmani/py-ulid Python → Rust 200-400 Under 500 MIT ULID generation/parsing (Crockford base32)
Lilykos/pyphonetics Python → Rust 400-800 Under 500 check license Soundex/Metaphone/RefinedSoundex/Lein/MRA phonetics
suminb/base62 Python → Rust 150-250 Under 500 BSD base62 URL-safe encode/decode incl. bytes
toastdriven/pylev Python → Rust 150-300 Under 500 BSD (New) Pure-Python Levenshtein distance
zopefoundation/roman Python → Rust <300 Under 500 ZPL (verify) integer<->Roman numeral converter

E Go → Rust 24

Repository Port ~LOC Size License What it does
BurntSushi/toml Go → Rust 3000-4500 Standard (2k–8k) MIT Reflection-based TOML decoder/encoder (v1.0.0)
dustin/go-humanize Go → Rust 2000-3000 Standard (2k–8k) MIT human-friendly formatting: bytes/SI/commas/ordinals/times
gobwas/glob Go → Rust 2000-3000 Standard (2k–8k) MIT Compile-once glob matcher (lexer->compiler->matcher)
gocarina/gocsv Go → Rust 2000-3000 Standard (2k–8k) MIT CSV <-> struct (de)serialization
gookit/ini Go → Rust 2000-3500 Standard (2k–8k) MIT INI config mgmt, multi-file load, ENV parsing
gorhill/cronexpr Go → Rust 1500-2500 Standard (2k–8k) GPL-3.0 OR Apache-2.0 cron expression parser + next-time computation
leekchan/accounting Go → Rust 2000-3000 Standard (2k–8k) MIT money/number formatting with precision + separators
martinlindhe/unit Go → Rust 3000-4000 Standard (2k–8k) MIT physical unit conversions (length/mass/temp/energy/speed)
robfig/cron Go → Rust 2000-3000 Standard (2k–8k) MIT cron spec parser + job scheduler
araddon/dateparse Go → Rust 1500-2000 Sprint (500–2k) MIT permissive date-string parsing via state machine
gosimple/slug Go → Rust 400-800 Sprint (500–2k) MPL-2.0 URL-friendly slugify w/ transliteration
jacoelho/banking Go → Rust 1000-2000 Sprint (500–2k) check license IBAN validate/generate + SEPA (ISO 3166-1)
martinlindhe/subtitles Go → Rust 800-1500 Sprint (500–2k) check license subtitle library/CLI (.srt/.vtt/.ssa)
Masterminds/semver Go → Rust 1500-2500 Sprint (500–2k) MIT Parse/compare/sort/constraint-check SemVer
mmcloughlin/geohash Go → Rust 800-1500 Sprint (500–2k) MIT string + integer geohash encode/decode/neighbor
oklog/ulid Go → Rust 1000-1500 Sprint (500–2k) Apache-2.0 ULID generation/parsing
spaolacci/murmur3 Go → Rust 1000-2500 Sprint (500–2k) BSD-3-Clause MurmurHash3 32/64/128-bit
almerlucke/go-iban Go → Rust 300-700 Under 500 check license IBAN validation
itchyny/base58-go Go → Rust 200-400 Under 500 MIT (verify) base58 library + CLI (Flickr/Ripple/Bitcoin)
mr-tron/base58 Go → Rust 200-500 Under 500 MIT fast base58 encode/decode
stefanovazzocell/bencode Go → Rust 400-800 Under 500 MIT fast secure bencode parser/encoder, no deps
vaughan0/go-ini Go → Rust 100-200 Under 500 MIT Line-by-line INI parser
zeebo/bencode Go → Rust 500-900 Under 500 MIT (verify) struct-tag-based bencode encode/decode
sergi/go-diff Go → Rust 8000-12000 Over 8k MIT + Apache-2.0 diff-match-patch: diff, fuzzy match, patch apply

F JavaScript → Go / Rust 11

Repository Port ~LOC Size License What it does
micromatch/picomatch JavaScript → Go,Rust 2000-2500 Standard (2k–8k) MIT zero-dep bash-style glob matcher
MikeMcl/bignumber.js JavaScript → Go,Rust 2520 Standard (2k–8k) MIT arbitrary-precision decimal + non-decimal arithmetic
MikeMcl/decimal.js JavaScript → Go,Rust 4035 Standard (2k–8k) MIT arbitrary-precision Decimal type
tnfe/bbo JavaScript → Go,Rust 2000-4000 Standard (2k–8k) MIT (verify) Zero-dependency JS utility library
bgrins/TinyColor JavaScript → Go,Rust 1187 Sprint (500–2k) MIT color parse/manipulate/convert (hex/rgb/hsl/hsv)
janl/mustache.js JavaScript → Go,Rust 764 Sprint (500–2k) MIT logic-less Mustache templates (scanner/parser/render)
ljharb/qs JavaScript → Go,Rust 900-1100 Sprint (500–2k) BSD-3-Clause query-string parser/serializer with nesting
omichelsen/compare-versions JavaScript → Go,Rust 200-400 Under 500 MIT Semver-ish version comparison, zero deps
sindresorhus/slugify JavaScript → Go,Rust 300-700 Under 500 MIT slugify a string with transliteration + counter
visionmedia/bytes.js JavaScript → Go,Rust <500 Under 500 MIT human-readable byte-size format/parse
Yomguithereal/mnemonist JavaScript → Go,Rust 6000-9000 Over 8k MIT ~50 classic/exotic data structures

G C → Zig 17

Repository Port ~LOC Size License What it does
cktan/tomlc99 C → Zig 2400-2700 Standard (2k–8k) MIT small TOML v1.0 parser in C99
DaveGamble/cJSON C → Rust,Zig 2000-3000 Standard (2k–8k) MIT ANSI-C JSON parser/printer
kgabis/parson C → Zig 2500-2700 Standard (2k–8k) MIT lightweight C89 JSON parser/serializer, two files
lammertb/libcrc C → Rust,Zig 2000-3500 Standard (2k–8k) MIT CRC16/32/64, CRC-CCITT, NMEA checksums
ludocode/mpack C → Rust,Zig 6000-8000 Standard (2k–8k) MIT MessagePack encoder/decoder (tree parser + writer)
antirez/sds C → Zig 1400 Sprint (500–2k) BSD-2-Clause binary-safe dynamic strings (Redis SDS)
cesanta/mjson C → Zig 1200-1500 Sprint (500–2k) MIT no-alloc JSON parser/emitter + JSON-RPC state machine
codeplea/tinyexpr C → Rust,Zig 600-900 Sprint (500–2k) zlib Recursive-descent math expression evaluator
cofyc/argparse C → Zig 520 Sprint (500–2k) MIT command-line argument parser (bool/int/str/subcmd)
getdnsapi/yxml C → Zig 1240 Sprint (500–2k) MIT small non-validating stream XML parser (FSM)
jserv/MathEX C → Rust,Zig 600-1000 Sprint (500–2k) MIT String math-expression evaluator w/ vars & funcs
JuliaStrings/utf8proc C → Zig 782 core + big table Sprint (500–2k) MIT UTF-8 Unicode processing (NF, case-fold, graphemes)
kokke/tiny-regex-c C → Zig 550 Sprint (500–2k) Unlicense (PD) tiny regex engine, no malloc/recursion
phoboslab/qoi C → Rust,Zig 600 Sprint (500–2k) MIT Quite OK Image lossless codec (single header)
skeeto/pdjson C → Zig 1030 Sprint (500–2k) Unlicense (PD) streaming/pull JSON parser, full UTF-8 + surrogates
benhoyt/inih C → Rust,Zig 300-500 Under 500 BSD-3-Clause Minimal embeddable INI parser
zserge/jsmn C → Rust,Zig ~200 Under 500 MIT Minimal JSON tokenizer (embedded)

H Open pair (X → Y) 19

Repository Port ~LOC Size License What it does
harrisiirak/cron-parser TypeScript → Go Standard (est) Standard (2k–8k) MIT cron expression parser/iterator with timezone
java-diff-utils/java-diff-utils Java → Rust,Go 2500-4000 Standard (2k–8k) Apache-2.0 diff/patch: Myers diff, patch apply, unified-diff parse
micromatch/picomatch JavaScript → Go,Rust 2000-2500 Standard (2k–8k) MIT zero-dep bash-style glob matcher
MikeMcl/bignumber.js JavaScript → Go,Rust 2520 Standard (2k–8k) MIT arbitrary-precision decimal + non-decimal arithmetic
MikeMcl/decimal.js JavaScript → Go,Rust 4035 Standard (2k–8k) MIT arbitrary-precision Decimal type
olbrich/ruby-units Ruby → Rust,Go 2000-3000 Standard (2k–8k) MIT units-of-measure: parse/convert/arithmetic
0xd34df00d/hsqoi Haskell → Rust 500-1000 Sprint (500–2k) check license Haskell QOI codec
bgrins/TinyColor JavaScript → Go,Rust 1187 Sprint (500–2k) MIT color parse/manipulate/convert (hex/rgb/hsl/hsv)
canton7/sem_version Ruby → Rust 300-600 Sprint (500–2k) MIT (verify) SemVer 2.0.0 parse/validate/compare
GoogleChromeLabs/jsbi TypeScript → Go,Rust 1892 Sprint (500–2k) Apache-2.0 pure-JS ECMAScript BigInt implementation
HoldOffHunger/roman-numerals PHP → Go 500-1500 Sprint (500–2k) check license Roman numerals extended (to trillions)
janl/mustache.js JavaScript → Go,Rust 764 Sprint (500–2k) MIT logic-less Mustache templates (scanner/parser/render)
janlelis/paint Ruby → Rust,Go 500-800 Sprint (500–2k) MIT terminal ANSI colorization (truecolor/256/16)
ljharb/qs JavaScript → Go,Rust 900-1100 Sprint (500–2k) BSD-3-Clause query-string parser/serializer with nesting
yougov/fuzzy Python → Rust 500-1000 Sprint (500–2k) check license fast phonetics (Soundex/NYSIIS/Double Metaphone, Cython/C)
jlindsey/semantic Ruby → Rust 200-400 Under 500 MIT SemVer parse/compare class
machinateur/roman-numerals PHP → Go <300 Under 500 check license Roman numeral converter (PHP)
visionmedia/bytes.js JavaScript → Go,Rust <500 Under 500 MIT human-readable byte-size format/parse
Yomguithereal/mnemonist JavaScript → Go,Rust 6000-9000 Over 8k MIT ~50 classic/exotic data structures

104 repositories across 8 tracks. Again: use one of these or bring your own.