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 modulesfs
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.
Have fun!