An Embeddable Scripting Engine |
Tweet |
Follow @jx9_engine |
About jx9.
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. |