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
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.
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
You need to have CocoaPods installed. If you do not have already, run sudo gem install cocoapods.
Install the dependencies via pod install.
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.