GNOME JavaScript
GJS is a JavaScript runtime built on Firefox's SpiderMonkey JavaScript engine and the GNOME platform libraries.
Use the GNOME platform libraries in your JavaScript programs. GJS powers GNOME Shell, Maps, Characters, Sound Recorder and many other apps.
If you would like to learn more or get started with GJS, head over to the documentation.
Installation
Available as part of your GNOME distribution by default.
In most package managers the package will be called gjs
.
Usage
GJS includes a command-line interpreter, usually installed in
/usr/bin/gjs
.
Type gjs
to start it and test out your JavaScript statements
interactively.
Hit Ctrl+D to exit.
gjs filename.js
runs a whole program.
gjs -d filename.js
does that and starts a debugger as well.
There are also facilities for generating code coverage reports.
Type gjs --help
for more information.
-d
only available in gjs >= 1.53.90
Contributing
For instructions on how to get started contributing to GJS, please read the contributing guide, https://gitlab.gnome.org/GNOME/gjs/blob/HEAD/CONTRIBUTING.md.
History
GJS probably started in August 2008 with this blog post and this experimental code. GJS in its current form was first developed in October 2008 at a company called litl, for their litl webbook product. It was soon adopted as the basis of GNOME Shell's UI code and extensions system and debuted as a fundamental component of GNOME 3.0.
In February 2013 at the GNOME Developer Experience Hackfest GJS was declared the 'first among equals' of languages for GNOME application development. That proved controversial for many, and was later abandoned.
At the time of writing (2018) GJS is used in many systems including Endless OS's framework for offline content and, as a forked version, Cinnamon.
Reading material
Documentation
JavaScript & SpiderMonkey
GNOME Contribution
License
Dual licensed under LGPL 2.0+ and MIT.
Thanks
The form of this README was inspired by Nadia Odunayo on the Greater Than Code podcast.