Skip to content
This repository was archived by the owner on Jul 3, 2020. It is now read-only.
/ runtime Public archive

[not maintained] Lightweight JavaScript library operating system for the cloud

License

Notifications You must be signed in to change notification settings

runtimejs/runtime

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0a6e84c · Dec 19, 2019
Aug 1, 2016
Feb 14, 2015
Nov 1, 2015
Jul 25, 2016
May 25, 2014
Jul 7, 2016
Aug 29, 2016
Mar 28, 2016
Aug 1, 2016
Jul 18, 2015
Aug 20, 2014
Jul 8, 2016
Aug 1, 2016
Mar 27, 2016
Mar 28, 2016
Mar 27, 2016
Sep 30, 2017
Jun 21, 2015
Jul 10, 2016
Jun 17, 2014
Jan 16, 2016
Nov 22, 2019
Jul 30, 2016
Sep 30, 2017

Repository files navigation

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