Node.jsはバージョンアップも早く、開発者としては追従するのに苦労します。新しい機能が増える一方、安定と不安定を繰り返す可能性もあり、採用を躊躇してしまう人もいるのではないでしょうか。 そんな方々に使ってみて欲しいのがPurpleJSです。JVM上で動くJavaScriptアプリケーションフレームワークです。

PurpleJSの使い方

PurpleJSの一例です。

/**
 * Handles a simple GET request.
 */
exports.get = function () {
    return {
        body: 'Hello World!'
    };
};

これをgradleでビルドするとサーバが立ち上がります。

さらにシステム情報を取り出す例。

// Require our system info library.
var sysInfo = require('/lib/sysinfo');

// Handle get request.
exports.get = function (req) {
    var path = req.path;
    var result = sysInfo.getInfo();

    if (path.equals('/os')) {
        result = result.os;
    }

    if (path.equals('/memory')) {
        result = result.memory;
    }

    if (path.equals('/memory/heap')) {
        result = result.memory.heap;
    }

    if (path.equals('/memory/nonHeap')) {
        result = result.memory.nonHeap;
    }

    return {
        body: result
    };
};

PurpleJSはJVM上で動くので、Javaのクラスを使うこともできます。その恩恵か、非同期モデルではない形でサーバサイドJavaScriptアプリケーションが書けるとのことです。他にも任意のインフラ上で動く、既存のJavaアプリケーションを拡張できるといったメリットがあるようです。

PurpleJSはJava製のオープンソース・ソフトウェア(Apache Licnese 2.0)です。

PurpleJS purplejs/purplejs: PurpleJS framework - A javascript application framework on the JVM.