README.md Merge pull request #163 from austinfrey/patch-1 66 revisions

Project is not maintained, use at your own risk #

There is a project at runtimejs-comm/runtime that is looking to continue by maintaining a fork. Visit the repository on Github for more details.

runtime.js #

Build Status npm Gem Travis

runtime.js is an open-source library operating system (unikernel) for the cloud that runs JavaScript, can be bundled up with an application and deployed as a lightweight and immutable VM image.

It's built on V8 JavaScript engine and uses event-driven and non-blocking I/O model inspired by Node.js. At the moment KVM is the only supported hypervisor.

It tries to be compatible with npm module ecosystem and supports some of the Node.js API.

WARNING: project is in development and not ready for production use.

Installation #

First thing is the command line tool runtime-cli, it will add runtime command to the shell. Type runtime to get full usage help.

npm install runtime-cli -g

Make sure QEMU is installed, it enables running applications locally.

brew install qemu           # OSX
sudo apt-get install qemu   # Ubuntu

Getting Started #

Create new project and add index.js entry point file:

mkdir project
cd project
npm init
npm install runtimejs --save
echo "console.log('ok')" > index.js

Run project locally in QEMU:

runtime start

That's it, it should start and print ok in the console.

Optionally you can let it watch directory for changes and restart QEMU automatically:

runtime watch

How does it work? #

There are two main components: operating system kernel and a JavaScript library.

The kernel is written in C++ and manages low-level resources like CPU and memory, runs JavaScript using embedded V8 engine. Library drives the entire system and manages hardware devices (usually virtualized by hypervisor).

Docs #

API docs

Community #

Modules and projects developed by the community for runtime.js

License #

Apache License, Version 2.0