EPL is a fully-featured programming language where every keyword is natural English.
Build web apps, REST APIs, mobile apps, AI pipelines, and cloud-native services β in a syntax anyone can read, write, and maintain.
pip install eplang
Documentation Β· Playground Β· VS Code Extension Β· Package Registry
EPL (English Programming Language) eliminates the gap between pseudocode and executable code. Its syntax reads like structured English, while its runtime delivers the performance and tooling expected from a modern language β bytecode VM, LLVM native compilation, WASM targets, and a 22-package official ecosystem.
Note: A production-grade REST API in EPL
Create WebApp called app
Route "/api/users" responds with
users = [Map with name = "Alice" and role = "admin", Map with name = "Bob" and role = "user"]
Send json Map with data = users and count = length(users) and status = "ok"
End
Route "/health" responds with
Send json Map with status = "healthy" and version = "9.8.0"
End
No semicolons. No curly braces. No cryptic symbols. Just English.
pip install eplangecho 'Say "Hello from EPL!"' > hello.epl
epl hello.eplepl replepl new myapp --template web # Web app with routing
epl new authapp --template auth # Auth API with JWT
epl new botapp --template chatbot # AI chatbot
epl new studio --template frontend # Creative frontendpip install "eplang[server]"
epl serve app.epl # Dev server
epl deploy k8s app.epl --image myapp:1.0 --tls # Kubernetes
epl deploy aws app.epl # AWS ECSEPL supports WSGI (Waitress, Gunicorn) and ASGI (Uvicorn, Hypercorn) deployment through generated adapters and the epl serve runtime.
The web DSL renders structure, styling (Style/Stylesheet), head/SEO (Head), and interactivity (On click/hover/reveal) as native, server-rendered output β no client-side injection. Event handlers compile to a generated <script> (never inline on* attributes).
For the imperative cases the DSL doesn't model β a canvas particle engine, custom requestAnimationFrame loops, third-party widgets β Script, Raw HTML, and Stylesheet are the sanctioned, author-responsible escape hatches (the canvas particle engine on the EPL site itself lives in a Script block by design). Their bodies are emitted verbatim, with breakout guards on Stylesheet.
Run under a strict Content-Security-Policy with --csp:
epl serve app.epl --cspThis generates a fresh per-response nonce, tags every generated <script> with it, and sends Content-Security-Policy: β¦ script-src 'self' 'nonce-β¦' β¦ β so the generated JS runs under a strict policy with no 'unsafe-inline' for scripts. (Programmatic equivalent: configure_page(csp=True).)
|
Variables & Control Flow |
Functions & OOP |
EPL is a multi-backend language with a unified frontend:
ββββββββββββββββ
.epl source βββΆβ Lexer β
β Parser β
β AST β
ββββββββ¬ββββββββ
β
ββββββββββββββΌβββββββββββββββββ
βΌ βΌ βΌ
ββββββββββββββββ ββββββββββββ βββββββββββββββ
β Interpreter β β Bytecode β β LLVM β
β (Tree-walk) β β VM β β (Native) β
ββββββββββββββββ ββββββββββββ βββββββββββββββ
β β β
βΌ βΌ βΌ
Python host Stack VM .exe / .o
(x86-64 verified)
| Target | Command | Output |
|---|---|---|
| Bytecode VM (default) | epl run app.epl |
Stack-based VM |
| Interpreter | epl run --interpret app.epl |
Tree-walk |
| Native Binary | epl build app.epl |
LLVM β .exe / ELF |
| WebAssembly | epl wasm app.epl |
.wasm module |
| JavaScript | epl js app.epl |
Browser/Node.js |
| Kotlin | epl kotlin app.epl |
JVM / Android |
| Python | epl python app.epl |
.py transpile |
The interpreter and bytecode VM are held to byte-for-byte output parity by a
dedicated harness (tests/parity_check.py) that diffs every example across both
backends β so epl run and epl run --interpret behave identically.
EPL ships with a curated package ecosystem covering web, data, AI, security, and infrastructure:
| Category | Packages | Description |
|---|---|---|
| Web & API | epl-web Β· epl-http | HTTP router, WebSocket, REST client, middleware |
| Data & DB | epl-db Β· epl-dataframe Β· epl-collections | SQLite ORM, DataFrame ops, typed collections |
| AI & ML | epl-learn Β· epl-array Β· epl-plot | Scikit-learn bindings, NumPy arrays, Matplotlib charts |
| Math & Science | epl-math Β· epl-science Β· epl-algo | Number theory, SciPy integration, graph algorithms |
| Security | epl-auth Β· epl-crypto Β· epl-validator | JWT auth, hashing/encryption, input validation |
| Infrastructure | epl-cloud Β· epl-cache Β· epl-email | AWS/GCP/Azure, Redis caching, SMTP |
| Language | epl-string Β· epl-datetime Β· epl-functional Β· epl-struct | String utils, date ops, FP patterns, typed records |
| Testing | epl-test | Unit testing framework with assertions |
epl install epl-auth # Install a package
epl install epl-math # Packages resolve from the official registryBrowse all packages at the EPL Package Registry β
Built-in modules available without installation: math, string, http, json, crypto, datetime, regex, io, os, sql, net, html, web, websocket, collections, encoding, functional, auth, template, testing, sql.
Access the entire NPM ecosystem from EPL:
Use javascript "lodash" as _
Use javascript "axios" as axios
result = _.chunk([1, 2, 3, 4, 5, 6], 2)
response = axios.get("https://api.example.com/data")
Say response.data
|
π Web Applications & APIs π€ AI & Machine Learning ποΈ Database Applications |
π± Android Apps epl android app.epl
# β Full Android Studio project with Kotlinπ iOS Apps (experimental) epl ios app.epl
# β Xcode project with SwiftUI views
π₯οΈ Desktop Apps epl desktop app.epl
# β Compose Multiplatform desktop appβ‘ Native Executables epl build app.epl
# β LLVM-compiled native binary
βΈοΈ Kubernetes Deployment epl deploy k8s app.epl \
--image myapp:1.0 \
--host app.example.com --tls |
| Category | Capabilities |
|---|---|
| Language | OOP, generics, async/await, pattern matching, lambdas, generators, enums, decorators, type inference |
| Type System | Static type checker (epl check), gradual typing, generic constraints |
| Performance | Bytecode VM with constant folding, LLVM native compilation, dead code elimination, tail-call optimization |
| Web | HTTP/WebSocket router, WSGI/ASGI adapters, middleware pipeline, sessions, templates, static files |
| Database | SQLite ORM, Redis, PostgreSQL β Store/Fetch/Delete English APIs |
| Security | Sandboxed FFI, pickle allowlist, recursion/scope-depth limits, input validation |
| Tooling | LSP server, REPL, debugger, formatter (epl fmt), linter (epl lint), test runner, code coverage |
| Targets | Interpreter, VM, LLVM native, JS, Kotlin, Python, WASM, MicroPython β 8 compilation backends |
| Packaging | SemVer registry, lockfiles, checksums, dependency resolution, PyPI bridge |
| AI | Built-in ai module, Error Explainer v2.0 with 55+ offline patterns (epl fix), auto-fix (--fix), dual-model copilot |
| DevOps | K8s manifests, AWS/GCP/Azure deploy, Prometheus metrics, health endpoints, structured logging |
| Interop | JS/TS bridge for NPM, Python bridge for PyPI, persistent Node.js subprocess |
| Stdlib | 725+ built-in functions: HTTP, DB, Math, Crypto, File I/O, JSON, Regex, DateTime, HTML |
Usage: epl <command> [options]
Core
epl run <file> Run an EPL program
epl repl Interactive REPL
epl new <name> [--template] Scaffold a new project
epl serve <file> Start web server (dev mode)
Build & Compile
epl build <file> Compile to native executable (LLVM)
epl wasm <file> Compile to WebAssembly
epl js <file> Transpile to JavaScript
epl python <file> Transpile to Python
epl kotlin <file> Transpile to Kotlin
Platform Targets
epl android <file> Generate Android Studio project
epl ios <file> Generate Xcode / SwiftUI project
epl desktop <file> Generate Compose Multiplatform app
epl web <file> Generate WASM/JS web app
Quality & Tooling
epl check [file] Static type checking
epl fmt <file> Format source code
epl lint [file] Lint source code
epl test [dir] Run test suite
epl fix <file> Error diagnostics (offline, 55+ patterns)
epl fix <file> --fix Auto-apply suggested corrections
Deploy
epl deploy k8s <file> Generate Kubernetes manifests
epl deploy aws <file> Deploy to AWS ECS
epl deploy gcp <file> Deploy to GCP Cloud Run
epl deploy azure <file> Deploy to Azure Container Apps
Packages
epl install <package> Install a package
epl upgrade Upgrade EPL to latest version
Tools
epl playground Browser-based playground
epl copilot AI code assistant
| Capability | EPL | Python | JavaScript | Go | Java |
|---|---|---|---|---|---|
| Natural-language syntax | β | β | β | β | β |
| Learning curve | Minutes | Days | Days | Weeks | Weeks |
| Built-in web framework | β | β | β | β | β |
| Built-in AI module | β | β | β | β | β |
| Package manager | β | pip | npm | go mod | Maven |
| Native compilation | β LLVM β | β | β | β | β JIT |
| WASM target | π§ͺ β‘ | β | β | β | β |
| Mobile transpiler | β Android Β· π§ͺ iOS β‘ | β | React Native | β | β |
| LSP / IDE support | β | β | β | β | β |
| Type checking | β Gradual | β mypy | β TS | β | β |
β Native (
epl build) compiles type-annotated programs and infers types for untyped functions where they resolve to a single concrete type (v10.1.0); genuinely dynamic/polymorphic functions are safely refused (run them withepl run). π§ͺ β‘ = experimental / not yet CI-verified against the target toolchain (Emscripten for WASM, Swift for iOS).
The official EPL extension provides a first-class development experience:
- Syntax Highlighting β Full TextMate grammar for
.eplfiles - Real-time Diagnostics β Type errors, unused variables, parse errors
- IntelliSense β Autocomplete for keywords, builtins, and imports
- Hover Documentation β Inline docs for all 725+ built-in functions
- Error Diagnostics β
epl fixwith Rust-style context window and--fixauto-correction - Run & Check β
Ctrl+Shift+Rto run,Ctrl+Shift+Kto type-check
Install from the VS Code Marketplace β
| Resource | Link |
|---|---|
| Getting Started | docs/getting-started.md |
| Language Specification | docs/language-spec.md |
| Tutorials | docs/tutorials.md |
| Package Manager Guide | docs/package-manager.md |
| Architecture Overview | docs/architecture.md |
| Publishing Packages | docs/publishing.md |
| Full Documentation Site | abneeshsingh21.github.io/EPL |
| Changelog | CHANGELOG.md |
We welcome contributions from the community. EPL maintains enterprise-grade code quality standards: every change is gated by a blocking CI pipeline β whole-tree mypy type-checking, Ruff lint + formatting, and the full test suite (1,700+ tests).
git clone https://github.com/abneeshsingh21/EPL.git
cd EPL
pip install -e ".[dev,cloud]"
ruff format .
pytest tests/ -x --tb=short -qBefore contributing, please read:
- CONTRIBUTING.md β Development workflow and testing requirements
- CODE_OF_CONDUCT.md β Community standards
- CLA.md β Contributor License Agreement
See CONTRIBUTORS.md for the full list of contributors.
- Core language β interpreter, bytecode VM, LLVM native compiler
- Web framework β HTTP/WebSocket router, WSGI/ASGI, middleware
- Package manager β SemVer, lockfiles, checksums, dependency resolution
- Developer tooling β LSP server, debugger, REPL, formatter, linter
- Mobile targets β Android (Kotlin) transpiler Β· iOS (SwiftUI) generator (experimental, not yet toolchain-verified)
- Desktop target β Compose Multiplatform app generation
- Cloud deploy β AWS ECS, GCP Cloud Run, Azure, Kubernetes
- JavaScript/TypeScript bridge β Full NPM ecosystem interop
- AI integration β Built-in module, Error Explainer v2.0 (55+ offline patterns, auto-fix), copilot
- Observability β Health checks, Prometheus metrics, structured logging
- PyPI distribution β
pip install eplang - VS Code extension β Syntax, diagnostics, IntelliSense
- Official documentation site and browser playground
- 22 official packages across web, data, AI, security, and infrastructure
- Language server protocol v2 (semantic tokens, token-aware rename & references)
- WebSocket real-time collaboration
- GPU compute target (CUDA/ROCm via LLVM)
- GitHub Discussions β Questions, ideas, and project showcase
- Issue Tracker β Bug reports and feature requests
- Package Registry β Browse and publish EPL packages
EPL is built and maintained by Abneesh Singh as an independent open-source project. If EPL is useful to you β in education, prototyping, or production β consider sponsoring its development:
Your sponsorship directly funds: new language features, official packages, documentation, VS Code extension updates, and security patches.
Copyright Β© 2024β2026 Abneesh Singh (singhabneesh250@gmail.com)
Licensed under the Apache License 2.0. See NOTICE for attribution requirements.
"EPL" and "English Programming Language" are trademarks of Abneesh Singh.
β If EPL resonates with you, consider starring the repository.
Made with precision by Abneesh Singh