Skip to content

What is MARS Engine?

MARS Engine is a server‑side JavaScript runtime and hosting platform purpose‑built for APIs, WebSockets, and document generation.
It lets you ship complete back‑end logic-from SQL queries to PDF reports-in a single, version‑controlled workspace that runs entirely in the browser and deploys with one click.

Core Ideas

Single‑function philosophy One universal helper per concern (param(), write(), db.query(), session(), …). Less syntax to memorise, more focus on business logic.

Transaction‑scoped execution Every request runs inside a database transaction. Succeed → auto‑commit; throw or exit → automatic rollback. Data integrity by default.

Built‑in realtime Define a WebSocket script alongside your API files and share the same helpers, sessions, and DB access-no extra infrastructure.

All‑in‑browser development Code editor, integrated database, environment settings, and deployment pipeline live in the same web UI. Nothing to install.

Building Blocks

API Scripts

Handle REST‑style or RPC endpoints.

js
// /api/echo.js
const defaultValue = 'Hello from MARS Engine!'
const message = param('msg', defaultValue);
write('echo', message);
  • Automatic JSON response
  • Access to db, fs, net, mail, and dozens of helpers
  • Runs in a transaction until the last line completes

WebSocket Scripts

Real‑time channels without boilerplate.

js
// onConnect
write('hello', 'Socket connected');

// onMessage
const data = param("data");
write('youSent', data);
  • Same helpers as API scripts
  • setId() to group sockets; disconnect() to kick clients

Libraries & Init Scripts

Share code or set globals.

js
// /lib/hash.js
exports.sha256 = str => sha(str, 256);

// /init/env.js  (runs once at boot)
shared.VERSION = getConfig('app.version', 'dev');

Reporting Engine

Generate PDF, ODT, XLSX, CSV from template files with one line:

js
const invoice = report.pdf('tpl/invoice.odt', { order });
write('file', invoice.data);   // streams the PDF

Typical Request Lifecycle

Client → MARS Engine
        ① open transaction
        ② run script
        ③ commit / rollback
        ④ assemble response
← Client
  1. Input via param() (URL, body, files)
  2. Logic & Helpers-DB queries, HTTP calls, file ops, etc.
  3. Output with write() (JSON) or by streaming a file buffer
  4. Headers / status set anytime before the first write()

Why Teams Choose MARS Engine

  • Speed of development – boilerplate‑free helpers and an all‑browser IDE cut setup to minutes.
  • Safety by design – default transactions, sanitisation helpers, and bcrypt utilities keep data consistent and secure.
  • Full‑stack in one repo – APIs, realtime channels, scheduled jobs, and report templates live together, versioned and reviewable.
  • Instant environments – dev, test, and live stages share configuration but isolate data, so promoting changes is a toggle, not a rebuild.

Learn More

  1. Quickstart: 5‑Minute Echo API
  2. Request Lifecycle Deep Dive
  3. API Reference → Such as: Params, Write, Firebase cloud messaging