finds.dev← search

// the find

TooTallNate/NodObjC

★ 1,423 · JavaScript · MIT · updated Aug 2020

The Node.js ⇆ Objective-C bridge

NodObjC bridges Node.js to the Objective-C runtime, letting you call Cocoa APIs and build macOS/iOS GUI apps entirely in JavaScript. It works by reading Apple's BridgeSupport metadata files and using node-ffi to talk directly to the ObjC runtime. The target audience is developers who want to script macOS automation or prototype Cocoa apps without touching Xcode.

The BridgeSupport-driven approach means you get access to the full Cocoa API surface without any manual binding work — import a framework and all its classes, structs, and C functions are immediately available. The message-passing syntax, while unusual, maps cleanly to ObjC's named-argument style, so it doesn't feel like a lossy translation. The test suite is genuinely broad — cast tests, GC edge cases, struct passing, block support, exception handling — more coverage than most FFI bridges bother with. The included NodeCocoaHelloWorld.app example shows the complete packaging story, not just a snippet.

Last commit was August 2020 and the Travis CI badge links to a dead service — this is effectively unmaintained, and it was never updated for Apple Silicon or modern Node.js. The ffi dependency has historically been a pain to build on newer Node versions due to native addon churn. iOS support was aspirational at best; BridgeSupport files aren't shipped for iOS, so that half of the pitch was always marketing. The invocation syntax of obj('method', arg) loses all IDE support and type information, making debugging non-trivial errors in large Cocoa call chains genuinely painful.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →