Under the hood

Every program follows the same path. The CLI starts a Rust host that executes your code on V8 and authorizes each native capability against an explicit permission model. The native APIs are written in Rust and .NET, compiled ahead-of-time to machine code.

ekko runtime architecture, horizontalLeft-to-right flow: CLI enters the Rust host, which contains SWC, the V8 isolate, the permission check and the FFI bridge. Granted ops continue right into the .NET AOT runtime; denied ops drop down to a PermissionError. CLI ekko run Rust host Tokio loop · isolate pool SWC TS → JS V8 runs JS Permissions fs · net · env FFI extern C .NET AOT fs, crypto ↻ result returns to V8 denied PermissionError thrown back to JS Pipeline step Runtime Permission gate Error path
ekko runtime architectureFlow from the CLI into the Rust host, which contains the SWC compiler, V8 isolate, permission check and FFI bridge. Granted ops cross the FFI into the .NET AOT runtime; denied ops throw a PermissionError back to JS. CLI ekko run app.ts Rust host Tokio loop · isolate pool SWC compiler TS → JS, in-process V8 isolate runs JS, issues ops Permission check fs · net · env · run denied PermissionError thrown back to JS granted ekko-bindgen FFI extern C bridge .NET AOT runtime fs · crypto · HTTP ↻ result returns to V8 Pipeline step Runtime Permission gate Error path

Capabilities

A batteries-included standard library, organized by capability. Every module lives in the runtime under the ekko: namespace.

File System

Read, write, watch, and stream files and directories.

Network

TCP, UDP, and DNS for network clients and servers.

Web & HTTP

HTTP server and client, routing, and WebSockets.

Database

A typed ORM over five SQL and NoSQL engines.

Cryptography

Hashing, HMAC, AES, and RSA/ECDSA.

Authentication

Sessions, JWT, OAuth, password hashing, and TOTP.

Runtime & Threads

Real threads, channels, and parallelism.

Testing

A built-in BDD runner with assertions and coverage.

Text & Encoding

JSON, text encoding, and regular expressions.

Date & Time

Timezone-aware dates, formatting, and arithmetic.

Process

Spawn processes, read the environment, handle signals.

Logging

Structured, leveled application logging.

Compression

Compress and decompress data and archives.

Jobs & Scheduling

Cron schedules and background job queues.

Foreign Functions

Call native C libraries directly from your code.

Server Rendering

Render React to HTML on the server.

The Rune Framework

Rune is the full-stack React framework built into EkkoJS. It renders on the server by design, then hands the running app to the browser: the first load is server-rendered, and every navigation after that is local and instant. Application state lives in Mimir, Rune’s state management, so a full refresh restores exactly where you were, with no lost client state.

Server-rendered by design

Every page renders to HTML on the server, for a fast first paint that search engines can read.

Load once, then client-side

After the first load the app runs in the browser. Navigation swaps pages locally, with no further round-trips.

Refresh-safe state

State lives in Mimir and rehydrates on load, so a full refresh keeps you exactly where you were.