Ejscript doesn't force you to use async-programming, unless you want to. Ejscript gives you freedom to choose the best and most natural design paradigm for your application. Ejscript uses an event-driven, non-blocking design so it can effortlessly run async applications. Ejscript couples this with a scalable multithreaded core so it can also run sync applications that need to block without callbacks.
The Ejscript Web Framework provides a complete environment for high-performance web applications. It is a Model-View-Controller web framework with integrated SQLite database and Object Relational Mapper (ORM). It has a library of data-binding Ajax view controls and includes jQuery for client side integration.
Ejscript is fast, compact and is optimized for server-side web applications. A direct-threaded VM and generational garbage collector provide fast runtime execution. A high-level system library of native classes provides C speeds for library methods and an in-memory web server module ensures rapid response for web requests.
Minimal Resource Requirements. Ejscript is fast and very compact (from 1MB). It demands minimal resources from your system so your system can focus devote vital system resources to running your application.
- Security and Reliability. Ejscript is ideal for embedded applications where uptime and secure execution is paramount. It includes a secure portable runtime to prevent common security flaws.
Ejscript has the features and flexibility to meet the most demanding web and embedded application needs. It can run stand-alone as a language interpreter, or it can be embedded into an existing application.
Ejscript has the following features:
Web Framework The Ejscript web framework enables Ajax based web applications with few lines of code. It includes a flexible request routing, Model-View-Controller framework, ORM layer, code generator, database migrations, integrated caching, a web page templating engine and a suite of Ajax view controls.
High Performance Virtual Machines. Ejscript has a direct-threaded VM with generational garbage collector. It uses a virtual arena-based memory allocator which is specifically designed for applications responding to web requests.
Compact Byte Code. Ejscript has an extremely compact, high level byte code. Ideal for server-side web applications.
Great Tools. Ejscript includes a fast, optimizing compiler, symbolic assembler listing generator and documentation generation tool.
Embeddable. Ejscript is easily embedded into existing applications and systems. It is highly configurable and supports ROMing of programs and XIP.
Portable. Ejscript has clean, modular source code that is cross-platform and easy to port to new platforms or CPU architectures.
See the Ejscript Feature List for an extended list of capabilities.
By contrast, Ejscript, requires from 400K of code and has minimal memory requirements to execute (from 600K). To do this, Ejscript sheds browser baggage and prioritizes design trade-offs toward memory efficiency.
Some of the more major issues are:
Ejscript Language Enhancements
Ejscript adds the following language enhancements:
- Block and file scope
- Module and namespace directives
- Let variable declarations
- Variable visibility controls
- Optional type annotations
- Bound methods that capture the this object
- Function rest arguments
- Class, extends, super and interface directives
- Extended language library: Http, File I/O, Sockets, Stream I/O, XML, Eventing
- E4X XML support
- Iterators and Generators
- Automatic type conversion for function arguments
- Extended try / catch syntax
- Cast, is operators
- Use pragmas
- Conditional compilation
You can choose to take advantage of the enhancements offered by Ejscript for a more secure, scalable and pleasant programming experience or you can can use it in strict ECMAScript compliant mode and utilize only standard features.
Early versions of Ejscript have been used in the Embedthis Appweb embedded web server for years and is now embedded in millions of devices. The new VM based version has also been used in a range of mobile devices to empower widget-style applications.
Ejscript software products are available with either an Open Source or Commercial license. Our products are created using an Open Source development model where a community of developers contribute enhancements and fixes. Products are licensed under the GNU GPL open source license and are provided with full source code.
Embedthis Software has generously provided infrastructure, developers and funding to make this possible and is also providing commercial support and licenses for Ejscript.
Embedthis provides commercial licenses and support. See https://embedthis.com for details.