Open source · MIT licensed

A lightweight
scripting language
for building fast apps.

EnderScript is a free and open source language for web services, scripts, and game logic. Minimal syntax, fast compile, written in Rust.

Why EnderScript

Real numbers.
Real language.

Six facts. No marketing. Scroll →

01

Readable syntax

Curly-brace blocks, no semicolons, first-class functions. If you read Python or Go, you already read EnderScript.

  • fn, let, for, if — 14 keywords total
  • UTF-8 source, LF or CRLF
hello.ender
room greet() {
    show("hai dari room")
}

greet()
greet()

nama = str.input.show("nama: ")
show(nama)
02

Compiled with Rust

Front-end + back-end written in Rust. LLVM-free codegen. Single static binary, no runtime, no VM.

12 mscold compile, 1k LOC
1.1 MBrelease binary
build
$ ender build main.ender
parsing 328 nodes
checking 27 types
linking main.exe
finished 12ms · 1.1 MB
03

Batteries included

Practical stdlib that ships in the binary. No package manager dance. 8 modules cover most scripting work.

Import · Use · Ship.

http
fs
str
math
time
tcp
udp
json
04

Native Windows x64

Targets PE/COFF directly. ender.exe is the entire toolchain — compiler, linker, and stdlib in one binary.

x86_64Windows 10+
0runtime deps
ender --version
> ender --version
enderscript 0.4.2
target x86_64-pc-windows-msvc
build release, lto=thin
05

Zero overhead

No VM. No GC pauses. No interpreter loop. Functions compile to flat machine code with stack-allocated locals.

0 MBruntime heap baseline
~3 mscold start
EnderScript
3 ms
Go
9 ms
Node.js
38 ms
Python
52 ms

cold-start — print & exit, n=200, lower is better

06

Free and open

MIT licensed. Full source on GitHub. Read it, fork it, ship it — commercial or otherwise.

No tracking. No telemetry. No account.

MIT
Free to use
Free to modify
Free to ship

Syntax

Write less.
Ship more.

hello.es
struct Player {
    name.str
    hp.int
    speed.int
}

room greet() {
    show("=== EnderScript ===")
}

greet()

p.Player = Player("alex", 100, 20)
show(p.name)
show(p.hp)

items.list = [10, 20, 30]
show(items[1])
server.es
try {
    s.int = server.listen(9998)
    show("server aktif")

    c.int = server.accept(s, 30000)
    msg.str = server.read(c, 1024, 30000)
    show(msg)

    server.write(c, "pong")
    server.close(c)
    server.close(s)
}
catch err {
    show("koneksi gagal")
    show(err)
}
View more examples

Install

One command.

Clone the repository and build from source. No runtime. No dependencies.

Terminal
$ git clone https://github.com/enderscript/enderscript
Open repository