Node.js Interpreter for iOS 7
Objective-C Ruby
Permalink
Failed to load latest commit information.
Interpreter.xcodeproj
Interpreter.xcworkspace Making schemes in Workspace shared Jan 5, 2014
NodelikeDemo
node_modules/examples examples: don't bind echo server to localhost only Apr 27, 2014
.covio.yml Move framework files into Nodelike folder. Oct 28, 2013
.gitignore proj: ignore pod lock Mar 3, 2014
.travis.yml travis: workaround cocoapods version Mar 4, 2014
Podfile pod: update node like Mar 3, 2014
README.md readme: add unmaintained notice May 14, 2015
demo.png update demo screenshot Feb 24, 2014

README.md

Important: This project is no longer maintained. The code is still available, but please don't regard it as anything but a hack. Please do not open new support tickets.

Interpreter Build Status Gitter chat

This is an example project implementing a Node.JS interpreter as an iOS app, utilising the Nodelike framework.

Nodelike is a project to implement a roughly Node.JS-compatible interface using JavaScriptCore.framework on iOS 7 and OS X Mavericks.

(JavaScriptCore hasn't been available before iOS 7, and on OS X the project makes extensive use of the newly-updated 10.9-only Objective-C API. Previously on 10.8 there existed only a very low-level and very verbose C API.)

This is currently in a very incomplete state. It could, however, become usable over the following weeks.

demo time

The goals

  • to be drop-in compatible with the current nodejs master
  • to be very lightweight
  • to reuse javascript code from node (/lib)
  • to provide the most minimal binding that is possible (via libuv)
  • NOT to achieve Node.js performance (this is meant as a client-side, not a server-side application)
  • NOT to be backwards-compatible (nodejs cutting edge and newest iOS/OS X required)

What's working right now

  • console.log()
  • process: .argv, .env, .exit(), .nextTick()
  • require() for native modules
  • fs
  • net
  • http
  • timers
  • util
  • url
  • events
  • path
  • stream
  • querystring
  • punycode
  • assert

How to compile

  1. You need to have CocoaPods installed. If you do not have already, run sudo gem install cocoapods.
  2. Install the dependencies via pod install.
  3. Open Interpreter.xcworkspace in Xcode and run!

How to use the app

You can enter Javascript code into the TextView and execute that via a tap on the Execute button. After each execution, when the result of the executed script is not undefined, a popover will appear containing that result.

Have fun!