Skip to content

Add cross-language benchmark comparison#44

Merged
EvanBacon merged 1 commit intomainfrom
@evanbacon/benchmark-native
Feb 28, 2026
Merged

Add cross-language benchmark comparison#44
EvanBacon merged 1 commit intomainfrom
@evanbacon/benchmark-native

Conversation

@EvanBacon
Copy link
Owner

@EvanBacon EvanBacon commented Feb 28, 2026

Summary

  • Add comprehensive benchmark comparing @bacons/xcode against other pbxproj parsers
  • Include Ruby benchmark using CocoaPods xcodeproj gem
  • Include Swift benchmark using Tuist XcodeProj library

Results

Parser Language 29KB 263KB Speed
@bacons/xcode TypeScript 0.15ms 0.81ms 🏆
xcode (legacy) JavaScript 1.54ms crashes 10x slower
XcodeProj (Tuist) Swift 2.00ms 11.2ms 13x slower
xcodeproj (CocoaPods) Ruby 3.63ms 22.5ms 24x slower

New Commands

  • bun run bench:compare - Run cross-language comparison
  • bun run bench:setup - Build Swift benchmark

Test plan

  • Run bun run bench (TypeScript-only benchmark)
  • Run bun run bench:compare (cross-language benchmark)
  • Verify Ruby xcodeproj gem is detected correctly
  • Verify Swift XcodeProj builds and runs

Expand benchmarks to compare @bacons/xcode against:
- xcode (legacy npm package, JavaScript/PEG.js)
- xcodeproj (CocoaPods gem, Ruby)
- XcodeProj (Tuist, Swift)

Results show @bacons/xcode is 10-28x faster than alternatives.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@EvanBacon EvanBacon merged commit d7732b2 into main Feb 28, 2026
1 check passed
@EvanBacon EvanBacon deleted the @evanbacon/benchmark-native branch February 28, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant