Skip to content

0.1.0

Choose a tag to compare

@mozharovsky mozharovsky released this 10 Feb 17:32
· 98 commits to main since this release

@xcodekit/xcode v0.1.0

Native Xcode .pbxproj parser and serializer for Node.js, written in Rust.

Highlights

  • 2-12x faster parsing than TypeScript alternatives
  • Byte-identical round-trip serialization (13/13 test fixtures)
  • 559 KB native binary (270 KB gzipped)
  • Full NeXTSTEP escape sequence support (Unicode, octal, 128-entry mapping table)
  • High-level XcodeProject API with build settings, target queries, orphan detection
  • 112 tests (87 Rust + 25 JS)

API

import { parse, build, parseAndBuild, XcodeProject } from "@mozharovsky/xcode";

// Low-level: parse/build
const project = parse(readFileSync("project.pbxproj", "utf8"));
const output = build(project);

// Zero-overhead round-trip
const output = parseAndBuild(text);

// High-level
const xcode = XcodeProject.open("ios/MyApp.xcodeproj/project.pbxproj");
xcode.setBuildSetting(targetUuid, "SWIFT_VERSION", "5.0");
xcode.save();

Supported Platforms

Platform Architecture
macOS arm64, x64
Linux x64 (glibc), arm64 (glibc)
Windows x64 (MSVC)

Full Changelog: https://github.com/mozharovsky/xcode/commits/v0.1.0