Jx9 is an embeddable scripting engine that implements a Turing complete programming language based on JSON.

Jx9 is the ideal library to use in applications that require modern and efficient scripting support such as games, database systems, text editors, network applications and so forth. Jx9 borrows concepts from Lua, but uses a clean and familiar syntax similar to C, JavaScript and JSON with a rich standard library built with over 303 functions and 139 constants, making it more accessible to programmers. Jx9 also natively supports multi-threading and the concept of separate engine handles and virtual machines.





As an embedded interpreter, it allows multiple interpreter states to coexist in the same program, without interference between them. Programmatically, foreign functions in C/C++ as well foreign constants can be added and variables can be defined or modified in the Jx9 environment. Being a quite small program, it is easy to comprehend, get to grips with, and use. Jx9 features includes:



Jx9 is 100% hand-coded, written in ANSI C, thread-safe, full reentrant, compiles unmodified and should run in any platform including restricted embedded devices with a C compiler. Jx9 is extensively tested on Windows and UNIX systems especially Linux, FreeBSD, Oracle Solaris and Mac OS X.





Being an extension language, Jx9 has no notion of a main program, it only works embedded in a host application . Jx9 is a compact library, with all features enabled, the library size can be less than 421 KiB, depending on compiler optimization settings. (Some compiler optimizations such as aggressive function inlining and loop unrolling can cause the object code to be much larger).

If optional features are omitted, the size of the Jx9 library can be reduced below 220 KiB. Jx9 can also be made to run in very little heap (2MB), making Jx9 a popular scripting choice on memory constrained gadgets such as cellphones, tablets, numeric devices and so on.





Jx9 is an open source, dual licensed product available free of charge for open source projects under the term of the Symisc Public License (SPL) which is a GPL compatible license and is equivalent to the more popular Sleepycat license (An OSI approved license). See the licensing page for additional information.





Jx9 Programming Interfaces.



Documentation describing the APIs used to program Jx9. Note that Jx9 is very easy to learn, even for new programmer. Here is some useful links to start with:

Jx9 In 5 Minutes Or Less



Gives a high-level overview on the how to embed Jx9 in a host application with working examples implemented in C. An Introduction To The Jx9 C/C++ Interface

Gives an overview and roadmap to the C/C++ interface to Jx9. The Jx9 Programming Language





The Jx9 programming language reference manual. C/C++ API Reference Guide





This document describes each API function in details. Foreign Function Implementation

Is a howto guide on how to create and install foreign functions typically implemented in C/C++ and how to invoke them from your Jx9 script. Constant Expansion Mechanism

Is a howto guide on how to install foreign constants typically implemented in C/C++ and how to expand their values from your Jx9 script.

Other Useful links.

Download

Get a copy of the last public release of the Jx9 scripting engine, start embedding and enjoy programming with.

Distinctive Features

This document enumerates and describes some of the features and the powerfull extensions introduced by Jx9.

Frequently Asked Questions

FAQ: The title of the document says all...



Copyright/Licensing

Jx9 is dual-licensed and is available free of charge for open source projects. Find more on the licensing situation there.

Online Community Support

Need some help, join the Jx9 online community.

Interested in Machine Learning & Computer Vision? try out Pixlab