// the find
TooTallNate/plist.js
Apple property list parser/builder for Node.js and browsers — supports XML, binary (bplist), and OpenStep formats
A TypeScript library for parsing and building Apple property list files in all three formats: XML, binary (bplist00), and old-school OpenStep/ASCII. Aimed at Node.js tooling authors who need to read iOS/macOS config files — think provisioning profile parsers, Xcode project manipulators, or electron-builder internals.
Auto-detection across all three formats from a single `parse()` call is genuinely convenient — no format sniffing in caller code. The browser build swaps in native `DOMParser` via conditional exports, so you get zero extra dependencies in the browser bundle at ~4 KB gzipped. Full read/write support for binary plists is rare in JS-land; most alternatives are parse-only or XML-only. Clean TypeScript with a sensible `PlistValue` union type that accurately models what plist can actually hold.
602 stars for a library that's been around since the TooTallNate era suggests it's useful but niche — you'll be on your own when you hit edge cases. Binary plist support covers bplist00 only; bplist15 and bplist16 (used by newer macOS versions for things like Contacts and iCloud data) are not mentioned anywhere. No streaming or large-file handling — loading a 50 MB TestSummaries.plist into memory as a string first is going to hurt. The OpenStep parser is described as auto-detected when input 'starts with { or (' which is a fragile heuristic that will silently misparse some XML plists if they start with a BOM or whitespace differently than expected.