EPL — English Programming Language
Write code the way you think. In plain English.
EPL runs on Python 3.9+. Install it with pip:
pip install eplangVerify the installation:
epl --versionCreate a file called hello.epl:
Say "Hello, World!"
Run it:
epl hello.eplOutput:
Hello, World!
name = "Alice"
age = 25
Say "Hello, " + name
Say "You are " + age + " years old"
score = 85
If score is greater than 90 then
Say "Grade: A"
Otherwise
Say "Grade: B"
End
Note: Count from 1 to 5
Repeat 5 times
Say "Counting..."
End
Note: Loop over a list
fruits = ["apple", "banana", "mango"]
For Each fruit in fruits
Say fruit
End
Function greet takes name
Return "Hello, " + name + "!"
End
Say greet("World")
Class Animal
name = "Unknown"
Function speak
Say name + " makes a sound"
End
End
dog = New Animal()
dog.name = "Rex"
dog.speak()
Hundreds of helpers are built in and always available. Six modules also ship as importable wrappers: json, encoding, net, os, regex, and sql. A bare Import brings their functions in as plain names; an aliased import namespaces them:
Import "encoding"
Say to_base64("hi") Note: prints aGk=
Import "regex" as RE
Say RE.test("[0-9]+", "abc123") Note: prints true (the string contains digits)
Note: `json` is a reserved word, so import it with an alias for member access.
Import "json" as J
Say J.stringify(Map with ok = true and count = 3)
See the standard library reference for the full module APIs.
The REPL lets you type and execute EPL code line by line:
epl replUseful REPL commands:
.vars— show all defined variables.help— show available commands.exit— quit
Create WebApp called app
Route "/" shows
Page "Welcome"
Heading "Welcome to my EPL web app!"
Text "This page is served by the native EPL web runtime."
End
End
Route "/hello" responds with
Send json Map with message = "Hello from EPL!"
End
Run it:
epl serve myapp.eplepl new myproject --template web
cd myproject
epl serveepl <file.epl> # Run a program
epl repl # Interactive REPL
epl new <name> # Create new project
epl serve <file.epl> # Start web server
epl build <file.epl> # Compile to native binary
epl check <file.epl> # Static type checking
epl fmt <file.epl> # Format source code
epl install <package> # Install a packageNo installation needed — try EPL instantly at:
The browser playground assistant can be routed through:
- a secure proxy (
/chator a Cloudflare Worker URL) - Groq directly with your own key
- Gemini directly with your own key
For the full local playground server with isolated execution and the native /api/assist route:
epl playgroundAccess the NPM ecosystem directly from EPL:
epl jsinstall lodash
epl jsinstall axiosUse javascript "lodash" as lodash
Use javascript "axios" as axios
Say lodash.capitalize("hello from epl")
Manage JS dependencies:
epl jsdeps # List installed JS packages
epl jsremove lodash # Remove a packageepl deploy k8s myapp/main.epl --image myapp:1.0 --host myapp.example.com --tlsepl deploy aws myapp/main.epl --image myapp:latest --region us-east-1
epl deploy gcp myapp/main.epl --image myapp:latest --region us-central1
epl deploy azure myapp/main.epl --image myapp:latest --region eastusAdd health checks, metrics, and structured logging to any web app:
Create WebApp called app
Import "epl.observability" As obs
obs.attach(app)
Note: This auto-adds:
Note: /_health — JSON health status
Note: /_ready — readiness probe
Note: /_metrics — Prometheus-format metrics
| Resource | Link |
|---|---|
| Official Book (PDF) | epl_book.pdf |
| Language Reference | language-reference.md |
| Tutorials | tutorials.md |
| Architecture | architecture.md |
| Package Manager | package-manager.md |
| Changelog | CHANGELOG.md |
- 🐛 Bug? Open an issue
- 💡 Feature request? Request here
- ⭐ Love EPL? Star the repo on GitHub!