Not logged in

Jsi is a small C-embeddable javascript interpreter supporting Database and Websocket.

Jsi is a glue language for C-centric development, as opposed to javascript-centric solutions such as Node-JS.

Internally Jsi is modelled after Tcl.

In addition to the standard javascript methods Jsi provides:

Moreover, Jsi enhances javascript with typed functions, eg.

function foo (a:number, b:string=''):number {
   return a+1;

so that calls with invalid arguments (wrong type, or number of) will output a warning.

Typed functions not only improve code maintainability, they help document expected values at the function interface.

The following sampling of topics from Index provides a quick overview of Jsi:

Name Description
Amalgamation Embedding Jsi with the single source file jsi.c
Functions Typed, variadic and fuzzy type function definitions
System Object containing global methods built into Jsi
Interp Context within which javascript executes
Info Supporting for introspection enabling self documentation
Filesystem File, Channel, Zvfs, exec, console, etc...
Sqlite Sqlite database extension
MySql MySql database extension
Websocket Websocket extension
Socket Socket (TCP and UDP) extension
Zvfs Support for Zip and Zero Install application
Jsi-Lite C-only sub-set of functions, ie. without an interpreter
Jsi_DbQuery Accelerated Sqlite development from C
User Extensions Creation of user defined C-extensions
Modules Facility for on-demand loading of source and extensions
Threads Per-interpreter thread support