What is JLS?

Jls is a general-purpose JavaScript platform. It aims to provide an extensible tooling framework. Jls can be used for various purposes including client-side, server-side or desktop scripting. Jls comes in two parts: a low level set of native libraries and a set of JavaScript libraries.

The jls native JavaScript engine is based on the Netscape Portable Runtime library and SpiderMonkey. The jls native libraries support multiple hosts, currently windows, linux, mac and web browsers.

The jls JavaScript libraries are dynamically loadable and provide abstraction interfaces for general-purpose scripting, current interfaces allow the use of file system, graphical user interface, network, database, etc.

Jls is an open source project licensed under the LGPL The JavaScript libraries source code is included in the distribution, you can also browse it online in the API documentation. The jls project is a work in progress (alpha phase), so there are bugs and missing features.

How to use it?

Download it, extract it somewhere, open a console and simply run:

> jls
Usage: jls [options] script [args...]

where options include:
    -bs <bootstrap script file name>
                  The file name of the script to use for bootstrap.
    -ep <extension path>
                  A directory to search for native library files,
                  script ZIP files and directories.
    -lp <library search path of directories>
                  A ; separated list of directories to search for native library files.
    -sp <script search path of directories and ZIP files>
                  A ; separated list of directories and ZIP archives
                  to search for script files.
                  Set a system property.

The script that you want to run must be available in the extension or the script path. The native library that you want to load must be available in the extension or the library path. The default extension path is which includes all the default libraries.

You can found more information in the documentation.

What are the features?

The following packages are available in the default runtime archive (rt.zip).

Graphical user interface (not available yet on linux/mac - probably gtk)
File system manipulation, file channel, pipe, charset
Unit testing framework
Base classes including thread, process, signal, buffer
Network classes including socket, selector, http client and server
SQL classes (MySQL)
Utility classes including image, inflater, zip file

Since 0.5, jls is based on AMD for defining its classes and provides a global function.

A minimalist PHP library is available with the distribution (php.zip) and used in the PhotoBlog tool.

The tests are available in the test archive (test.zip).

> jls jls/jsunit/TestRunner -all
96 test(s): 0 error(s) and 0 failure(s)

What does it look like?

The following is the hello world script.

var System = require('jls/lang/System');
var InputStreamReader = require('jls/io/InputStreamReader');
var BufferedReader = require('jls/io/BufferedReader');

System.out.print('Please, enter your name : ');
var reader = new BufferedReader(new InputStreamReader(System.in));
var name = reader.readLine();
System.out.printf('Hello %s !', name);

And the following is the execution result.

> jls hello.js
Please, enter your name : spyl
Hello spyl !

Other examples are available in the demo archive (demo.zip).

What do you want to do?

> See the demos
> Browse the documentation
> Download jls
> Give a feedback or report a bug

Powered by