List of server-side JavaScript implementations

Last updated

This is a list of server-side JavaScript implementations.

Contents

Server-side JavaScript use

Project-product nameJavaScript engineServer platform(s)Comments
Alfresco Rhino Any Java servlet container and standalone.Has JavaScript API that allows web scripts to create, access, delete, and manipulate data in the main Alfresco repository
Apache Sling Rhino Any Java servlet container and standaloneGeneric Java web application framework that allows the use of any script language via the standard Java Script Engine interface; Sling is RESTful by design and sits on top of a Java Content Repository, giving scripts full access to the JCR
AppJet Rhino (modified)Also provides hosting in a virtual machine
Aptana Jaxer SpiderMonkey Apache HTTP Server A community open source Ajax-server based on the Mozilla browser (DOM + JavaScript engine). HTML, JavaScript, and CSS are native to Jaxer, as are XMLHttpRequests, JSON, DOM scripting, etc. It offers access to databases, files, and networking, as well as logging, process management, scalability, security, integration APIs, and extensibility. Not developed anymore by Aptana.
ArangoDB V8 [1]
ASP JScript IIS ASP has been superseded by ASP.NET since January 2002.
ASP.NET JScript.NET IIS Support for JScript.NET and its successor DLR-based Managed JScript has been dropped in .NET Core (affecting .NET 5 slated to be based on it) so ASP.NET Core also has no support for JavaScript without a third-party implementation or going back to the older .NET Framework (and support for targeting the older non-"Core"-based .NET Framework was dropped in ASP.NET Core 3.0). The Roslyn .NET Compiler Platform which ASP.NET Core employs also has no ECMAScript support.
Bun JavaScriptCore StandaloneBundle, transpile, install and run JavaScript & TypeScript projects. Runtime with a native bundler, transpiler, task runner and npm client built-in.
ChakraCore Chakra Standalone or as JS engine in Node.js [2] JavaScript engine originally developed by Microsoft for use in its Edge browser. Released source under MIT License in January 2016. [3]
CouchDB SpiderMonkey Standalone HTTP Used in MapReduce and update validation functions as well as to transform JSON documents and view results into HTML or other content-types.
Deno V8 StandaloneDeveloped in Rust by same original author as Node.js and directly targets TypeScript but also supports JavaScript and WebAssembly. Employs asynchronous, event-based I/O model via promise-based APIs and Tokio scheduler, uses an API security model based upon FlatBuffers and implements package management via ES2015 modules.
Eclipse e4 Rhino Equinox OSGi, bundled with Jetty, any servlet container (using the servlet bridge)Extensions can be written in JavaScript, not just Java, especially servlets using the OSGi HTTP Service. Frontends can be developed with Eclipse RAP using the SWT and JFace APIs, or any other UI framework. Focus is on modularity (plug-ins), extensibility, scalability.
Google Apps Script Rhino (com.google.apps.maestro.rhino) and V8 Google AppEngine Implement Enterprise Workflows with Apps Script. Google Apps Script can be embedded in Google Sites giving your Google Site a backend. In addition, you can automate simple tasks across Google Products. Google Apps Script also allows interaction with non Google APIs and JDBC calls to databases.
HCL Domino IBM Domino IBM Domino (web server) as part of the xPages framework since version 8.5 (2009)
JSSP Rhino Any Java servlet containerContains a modified Rhino version for embedded SQL support
MongoDB SpiderMonkey 10gen application serverUsed V8 from version 2.4 [4] until version 3.2 which returned to SpiderMonkey [5]
Node.js V8 (SpiderMonkey was supported with JXcore [6] fork)StandaloneJavaScript asynchronous, event-based I/O. Influenced by systems like Ruby's Event Machine, Perl's POE or Python's Twisted. Plenty of modules available.
Opera Futhark Opera UniteJavaScript is the server-side language used to develop services for the Opera Unite feature of the Opera browser. This is a server built into the browser. The JavaScript API includes local file access to a virtual sandboxed file-system and persistent storage via persistent global variables.
PostgreSQL V8 Embedded language PLV8 [7] PLV8 is a trusted JavaScript language extension for PostgreSQL. It can be used for stored procedures, triggers, etc.
SAP HANA XS Engine V8 (SpiderMonkey before SPS11)SAP HANA XS Engine [8] SAP in-memory database server-side engine, which allows direct access SAP HANA database from JavaScript applications. XS Engine has web server functionality and can generate webpages directly, eliminating the application tier.
Synchronet SpiderMonkey StandaloneBulletin Board System (BBS) software with integrated TCP/IP servers (written in C/C++ and enhanced via SSJS): Telnet, RLogin, SSH, HTTP[S], SMTP, POP3, as well as services written entirely in JavaScript: IMAP, NNTP, IRC, Finger, Gopher, etc. Includes some great classically-inspired "BBS doors" written entirely in JavaScript. Open source and supported on Windows, Linux, and FreeBSD for little-endian architectures, e.g. x86 and ARM.
WakandaDB JavaScriptCore StandaloneJavaScript synchronous multi-threaded web server and NoSQL database, supporting the CommonJS module specification, written in C++.

Other common server-side programming languages are JavaServer Pages (JSP), Active Server Pages (ASP), Perl, PHP, Python, Ruby, ColdFusion, and others.

See also

Related Research Articles

<span class="mw-page-title-main">PostgreSQL</span> Free and open-source object relational database management system

PostgreSQL, also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transactions with atomicity, consistency, isolation, durability (ACID) properties, automatically updatable views, materialized views, triggers, foreign keys, and stored procedures. It is supported on all major operating systems, including Linux, FreeBSD, OpenBSD, macOS, and Windows, and handles a range of workloads from single machines to data warehouses or web services with many concurrent users.

Structured Query Language (SQL) is a domain-specific language used to manage data, especially in a relational database management system (RDBMS). It is particularly useful in handling structured data, i.e., data incorporating relations among entities and variables.

In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An application written using ODBC can be ported to other platforms, both on the client and server side, with few changes to the data access code.

Web development is the work involved in developing a website for the Internet or an intranet. Web development can range from developing a simple single static page of plain text to complex web applications, electronic businesses, and social network services. A more comprehensive list of tasks to which Web development commonly refers, may include Web engineering, Web design, Web content development, client liaison, client-side/server-side scripting, Web server and network security configuration, and e-commerce development.

The following tables compare general and technical information for a number of relational database management systems. Please see the individual products' articles for further information. Unless otherwise specified in footnotes, comparisons are based on the stable versions without any add-ons, extensions or external programs.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

CherryPy is an object-oriented web application framework using the Python programming language. It is designed for rapid development of web applications by wrapping the HTTP protocol but stays at a low level and does not offer much more than what is defined in RFC 7231.

Multi-master replication is a method of database replication which allows data to be stored by a group of computers, and updated by any member of the group. All members are responsive to client data queries. The multi-master replication system is responsible for propagating the data modifications made by each member to the rest of the group and resolving any conflicts that might arise between concurrent changes made by different members.

<span class="mw-page-title-main">LAMP (software bundle)</span> Acronym for a common web hosting solution

A LAMP is one of the most common software stacks for the web's most popular applications. Its generic software stack model has largely interchangeable components.

A spatial database is a general-purpose database that has been enhanced to include spatial data that represents objects defined in a geometric space, along with tools for querying and analyzing such data.

<span class="mw-page-title-main">Navicat</span> SQL database management software

Navicat is a series of graphical database management and development software produced by CyberTech Ltd. for MySQL, MariaDB, Redis, MongoDB, Oracle, SQLite, PostgreSQL and Microsoft SQL Server. It has an Explorer-like graphical user interface and supports multiple database connections for local and remote databases. Its design is made to meet the needs of a variety of audiences, from database administrators and programmers to various businesses/companies that serve clients and share information with partners.

MongoDB is a source-available, cross-platform, document-oriented database program. Classified as a NoSQL database product, MongoDB utilizes JSON-like documents with optional schemas. MongoDB is developed by MongoDB Inc. and current versions are licensed under the Server Side Public License (SSPL). MongoDB is a member of the MACH Alliance.

<span class="mw-page-title-main">Opa (programming language)</span>

Opa is an open-source programming language for developing scalable web applications.

A cloud database is a database that typically runs on a cloud computing platform and access to the database is provided as-a-service. There are two common deployment models: users can run databases on the cloud independently, using a virtual machine image, or they can purchase access to a database service, maintained by a cloud database provider. Of the databases available on the cloud, some are SQL-based and some use a NoSQL data model.

<span class="mw-page-title-main">MEAN (solution stack)</span> JavaScript software stack

MEAN is a source-available JavaScript software stack for building dynamic web sites and web applications. A variation known as MERN replaces Angular with React.js front-end, and another named MEVN use Vue.js as front-end.

<span class="mw-page-title-main">Snap (web framework)</span> Web development framework in Haskell

Snap is a web development framework written in the Haskell programming language.

<span class="mw-page-title-main">RocksDB</span> Embedded key-value database

RocksDB is a high performance embedded database for key-value data. It is a fork of Google's LevelDB optimized to exploit multi-core processors (CPUs), and make efficient use of fast storage, such as solid-state drives (SSD), for input/output (I/O) bound workloads. It is based on a log-structured merge-tree data structure. It is written in C++ and provides official language bindings for C++, C, and Java. Many third-party language bindings exist. RocksDB is free and open-source software, released originally under a BSD 3-clause license. However, in July 2017 the project was migrated to a dual license of both Apache 2.0 and GPLv2 license. This change helped its adoption in Apache Software Foundation's projects after blacklist of the previous BSD+Patents license clause.

<span class="mw-page-title-main">DBeaver</span> Multi-platform database administration software

DBeaver is a SQL client software application and a database administration tool. For relational databases it uses the JDBC application programming interface (API) to interact with databases via a JDBC driver. For other databases (NoSQL) it uses proprietary database drivers. It provides an editor that supports code completion and syntax highlighting. It provides a plug-in architecture that allows users to modify much of the application's behavior to provide database-specific functionality or features that are database-independent. This is a desktop application written in Java and based on Eclipse platform.

References

  1. ArangoDB Database (26 November 2012). "ArangoDB - Using JavaScript in the database".
  2. "Microsoft ChakraCore Roadmap". GitHub .
  3. "ChakraCore Now Open". 13 January 2016.
  4. , Release Notes for MongoDB 2.4
  5. , Release Notes for MongoDB 3.2
  6. , JXcore
  7. "PLV8 - trusted Javascript language extension for PostgreSQL". PostgreSQL.
  8. "What is SAP HANA - In Memory Computing and Real Time Analytics". SAP.