JavaScript and DHTML flexibility, Native Power
JNEXT is an open source (triple MPL, GPL, LGPL license), small footprint, cross platform and cross browser framework for extending Web browser Javascript
With JNEXT it is possible to utilize existing Web browsers to host full and self contained applications that do not depend on external Web servers for the application logic (although they are free to make use of them). This is acheived by enabling Javascript controlled access to the full range of native operating system resources (such as TCP/UDP sockets, files, databases, threads etc). An example is worth a thousand words:
The video below shows an example illustrating how JNEXT is used to extend JavaScript to support UDP sockets. This source for the demo will be included in the next release (coming soon):
Check the screen shots for more real examples to whet your appetite.
As can be seen from the above examples, the extensions are transparently added to JavaScript just by including the JNEXT libraries. JNEXT runs on Windows, Mac OS/X and Linux and supports several Web browsers: IE, FireFox, Google Chrome, Safari and Opera have been successfully tested on Windows. On Linux it has been successfully tested on Firefox and Netscape Navigator (Konqueror and Opera support still needs development). JNEXT has been successfully tested on Mac OS/X too with Safari and Firefox browsers.
Dec 20, 2008: The newest versions of Chrome and Opera do not work with the JNEXT samples. This is now being fixed.
The main purpose for creating JNEXT was to enable developers to build applications much faster by using JavaScript as the language for creating the HTML UI and application logic, while using native plugins to access system resources that are not available from JavaScript due to obvious security reasons.
Sounds great, but what about security ?
A great deal of thought went into making JNEXT secure. The way most RIA technologies tackle this is by limiting your freedom to access the full potential of the operating system, in other words, making the sandbox you're allowed to play in a bit larger.
The vision behind JNEXT is to enable a Web developer to unleash the combined power of the Web browser and operating system it runs on. However, without ultimate security measures, JNEXT would be a malevolent hackers dream, making it easy to use XSS attacks to format an innocent surfer's hard drive or worse - to read and send sensitive information.
To this effect, a tight PKI (Public Key Infrastructure) system has been designed to make sure that only the valid owner of a site is the creator of the code running on the user's browser (and even then, only if the user authorizes the site to run JNEXT).
The above PKI authentication system is still being implemented and is planned to be operational in JNEXT version 1.0.9 . In the meantime, the current version of JNEXT (1.0.8.3), does not include the PKI sucurity framework yet and is provided just to form a proof of concept or to be used as an alternative for cross platform UI development tool. As such the current version only makes use of a URL whitelist check, i.e any browser using the JNEXT framework can only access JNEXT via JavaScript if the site or file containing the JavaScript native extensions code is explicitly authorized by a local whitelist to access JNEXT extensions. The type of extensions (sockets, sqlite etc.) that are allowed to be accessed by JavaScript code for each permitted URL or file can also be explicitly defined. No other page has access to any of the local operating system resources.
So what does it run on ?
The following is the compatibility matrix of JNEXT 1.0.8.3 . It will be updated as new versions are released.
Windows | Mac OS/X | Linux | |
XP & Vista. Should run also on earlier versions | OS/X v10.4 (Tiger) & OS/X v10.5 (Leopard). | Ubuntu 7.10 (Gutsy Gibbon) & 8.04 (Hardy Heron) | |
Internet Explorer | |||
Firefox 2 & 3 | |||
Google Chrome | |||
Safari | |||
Opera | |||
Konqueror | |||
Epiphany |
Compatibility Index | |
Tested and works fine. | |
Needs fixing (does not work, or works partially). | |
Net tested yet, should be tested soon. | |
Not considered interesting. Will be tested only if time permits. | |
Browser does not exist for this OS |
Where can I download it from ?
Binaries
A setup for Windows can be downloaded below (automatically installs JNEXT for IE, Firefox, Safari, Opera and Google Chrome):
JNEXT-1.0.8.3.exe (1.0 MB)
Sources
If you wish to download the source code, the link below will download the source code that compiles on Windows, Linux and Mac OS/X.
(compiling the Windows ActiveX component currently requires the standard version of VS2005 or VS2008). The sources also contain a sample project
to illustrate how to easily create your own JNEXT extension:
jnext-src-1.0.8.3.zip (1.3 MB)
Note that the link above does not contain the latest code. For those wishing to compile the latest version or assist with development,
you can grab the latest code by installing bazaar (available for all platforms) and pulling the sources from http://jnext.org/core, i.e
just issue the following from the command line:
bzr branch http://jnext.org/core jncore
This will create a directory named jncore which will contain the latest JNEXT source code.
You can always post questions or comments to the blog or the
discussion group
Where can I learn more ?
If you're a Web developer, check out the Using JNEXT link. If you wish to help with developing JNEXT, read more at the Extending JNEXT page.