Note: ideas behind this project are similar to the Deno project, that may be a better choice as a general use JS runtime
Multi-threaded JavaScript runtime environment with batteries included.
Multiple JavaScript engines are supported (depending on OS), including QuickJS, JavaScriptCore, Duktape and Rhino.
Besides the runtime JS API (wilton package), a number of
popular JS libraries is also included
with distribution inside std.wlib bundle. All these libraries are tested on all JS engines on all platforms.
RequireJS module loader is used as a module system on all JS engines. ES modules also can be used on JS engines, that support modules (currently only on QuickJS).
Multiple threads can be used, with each thread running its own JS engine instance. Golang-like Channels are used for inter-thread communication.
Link to the JavaScript API documentation.
Download pre-built binaries for Windows, macOS, Android and Raspberry Pi.
COPR repository for CentOS 8, CentOS 7 and Fedora:
sudo yum install dnf-plugins-core # on CentOS 8 and Fedora
sudo yum install yum-plugin-copr # on CentOS 7
sudo yum copr enable wilton/wilton
sudo yum install epel-release
sudo yum update
sudo yum install wilton
wilton -v
Ubuntu PPA repository for 20.04 Focal Fossa and 18.04 Bionic Beaver:
sudo apt install software-properties-common
sudo add-apt-repository ppa:wiltonruntime/wilton
sudo apt update
sudo apt install wilton
wilton -v
Get sources and build tools:
git clone https://github.com/wiltonruntime/wilton.git
cd wilton
git submodule update --init
Follow platform-specific instructions:
This project is released under the Apache License 2.0.
2021-05-24
v202105241- Raspberry cross-build fix
- Audio support in Android WebView
opensslandcurlupdates
2021-03-14
v202103141wilton/Channelenchancements- graceful shutdown support in Nginx environment
2021-03-07
v202103071- HTTP queue fixes
2021-02-26
v202102261wilton_embedmodule for embedding runtime into other apps- Nginx integration
- HTTP requests queue API
- OS signals handling rework
json-schemaJS module added
2020-11-18
v202011182- JS libs refresh
- ES modules support for all bundled libs
- CentOS 8 and Ubuntu packaging
2020-10-28
v202010281- moved to
wiltonruntimeaccount - drop V8, MozJS and ChakraCore engines
- drop USB module
- Raspberry PI OS Buster support
2020-10-10
v202010101- QuickJS engine addded and enabled by default on all platforms
2020-09-29
v202009291- update
sjclandpwdauthlibs - JPEG support in
wilton/PDFDocument - support native builds on Fedora armhf
2020-05-05
v202005051wilton/mobileJS API- fix the build on latest Fedora
2020-03-29
v202003291wilton/processandwilton/zipenhancements
2020-02-23
v202002231wilton/kioskenhancements
2020-02-13
v202002131- support encrypted
.wlibmodules - remove
applicationDirectoryparameter from config - resource loader support in
wilton/Server
2019-11-24
v201911241- updated
cURLandOpenSSLlibs - native calls support in
wilton/kiosk - CLI launcher enhancements
- drop
wilton_winserviceexecutable - add
wilton_winscmmodule with JS API
2019-09-23
v201909231collectionslib removedbucketsandstringmaplibs addedlodash,momentandvuelibs updated- version output support in command line launcher
2019-09-15
v201909151wilton/KVStoreAPI for in-memory shared key-value storage- authentication support in
--new-projectserver template (based onpwdauth)
2019-09-08
v201909081wilton/systemdapi for systemd services- support
CLASSPATHenv var when run on Rhino windows-1251andwindows-1252encoding JS API--new-projecttemplates update
2019-09-02
v201909021- complete
wilton/Serialimpl on Android wilton/SocketAPI reworkwilton/gitrevparse supportwilton/processenhancementswilton/Serialandwilton/USBminor fixes
2019-07-24
v201907241--new-projectoption for generating projects boilerplate- automatic re-open of WebSocket connections for
backendcall - Android enhancements
2019-06-22
v201906221- CRLF empty strings fix in
wilton/fs#readLines - SSH by password support in
wilton/git - 'pull' support in
wilton/git - Android launcher app is fully functional
- test-suite FS use cleanup (for clean Android runs)
2019-05-12
v201905121- Android launcher app (first version)
- Raspbian file logging fix
- MacOS native libs dep paths fix
wilton/backendcallresponses fix
2019-04-20
v201904201- Raspbian Linux support including RaspberryPi Zero
wilton/gitJS API overlibgit2wilton/threadcapabilities support forwiltoncalls from JSwilton/kioskWindows support (requiresOpenJFX)wilton/fssupport deleting read-only files on Windowswilton/climinor enhancements- support
JAVA_HOMEforrhinoandnashornengines wiltonw"headful" launcher for Windows- handle registry shutdown behaviour fixes
kioskGUI app example, refreshvueappweb app example
2019-02-21
v201902211PGConnectionfixwilton_processandwilton_cronminor fixeslodashupdated to v4.17.11
2019-02-02
v201902021PGConnectionandpwdauthfixesOpenSSLandcURLupdates- CI setup enhancements
2018-09-06
v201810281- http file send with partial re-send support
- inspector support in
wilton/kiosk wilton/Server,PGConnection,wilton/usbandpwdauthfixes
2018-09-06
v201809061- dedicated PostgreSQL connection API
- sqlite crash fix and other DB fixes
- Debian Stretch AArch64 support
2018-07-19
v201807191- serviceability JS API
- USB connect fix on Windows
- Ubuntu 18.04 support
2018-06-24
v201806241- WebSocket fix for Firefox
- Windows CI releases setup
2018-06-20
v201806201- support for
v8,chakracoreandmozjsengines (only on Linux-x86_64) - WebSocket suport in
wilton/Server witon/kioskdesktop WebViews- Linux ARMv7 support
- a number of JS modules added
2018-04-08
v201804081- support for
rhinoandnashornengines in CLI launcher - support for pure-JS OpenJFX apps with Rhino engine
2018-03-25
v201803251SerialandUSBsupport on Windows- Fedora 28 builds
- support for native modules in Rust and Haskell
2018-03-11
v201803111- CentOS 7 CI setup
- debugging with Duktape engine from VSCode
- native debuginfo bundles for all platforms
- Chakra JS engine support on windows-x86_64
- TCP and UDP sockets access from JS
- native deps update
- do not require Brew OpenSSL on Mac
xml-js,uglify-jsandes6-shimJS libs
2018-01-27
v201801271- Jansson 2.10 usage fix on CentOS 7
2018-01-25
v201801251- more baud rate values for
wilton/Serial - fix spawned process signals on Linux in
wilton/process - update JSC to
webkitgtk-4.0in CentOS 7
2018-01-09
v201801091- PNG images support in
wilton/PDFDocument
2017-12-05
v201712051wilton/zipimplementation for ZIP files IO- some more JS modules added
- all JS modules (except
bluebirdandwilton/*) adapted for use in browser examples/browserweb-app example added
2017-11-27
v201711271- binary data (
hexflag) support inwilton/fs - use
copyfilesyscall on MacOS forwilton/fs.copyFile() - about 20 new JS modules adapted from NPM
2017-11-22
v201711221filesizeJS module addedappnamesupport in CLI launcher
2017-11-15
v201711151- shutdown fix on MacOS
- shutdown fix on Windows with JVM engines
2017-11-07
v201711071- Android, MacOS and Win64 builds
2017-10-29
v201710291- JavaScriptCore engine
- logging added
2017-10-21
v201710221- move all possible logic from core to modules
2017-10-13
v201710161- better channel api
- db logging
- bootstrap example
2017-10-13
v201710131- usb and serial fixes
- fs, logger and hex enhancements
2017-10-08
- build support for Ubuntu 16.04, Fedora 27 and CentOS 7
- readme added