EPL - English Programming Language: write code in plain English. Build apps, web servers, and more.
Project description
๐ EPL โ English Programming Language
Write code the way you think. In plain English.
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
Overview
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 = "7.5.9"
End
No semicolons. No curly braces. No cryptic symbols. Just English.
Quick Start
Install
pip install eplang
Run
echo 'Say "Hello from EPL!"' > hello.epl
epl hello.epl
REPL
epl repl
Scaffold a Project
epl 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 frontend
Production Deployment
pip 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 ECS
EPL supports WSGI (Waitress, Gunicorn) and ASGI (Uvicorn, Hypercorn) deployment through generated adapters and the epl serve runtime.
Language at a Glance
|
Variables & Control Flow name = "Abneesh"
age = 20
scores = [95, 87, 92]
If age is greater than 18 then
Say "Welcome, " + name
Otherwise
Say "Access denied"
End
For Each score in scores
Say score
End
Repeat 3 times
Say "Iteration complete"
End
|
Functions & OOP Function fibonacci takes n
If n is less than 2 then
Return n
End
Return fibonacci(n - 1) + fibonacci(n - 2)
End
Class User has name, email, role
Method display
Say "User: " + this.name
End
End
user = new User("Ada", "ada@epl.dev", "admin")
user.display()
|
Architecture
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, ARM, WASM)
Compilation Targets
| Target | Command | Output |
|---|---|---|
| Interpreter | epl run app.epl |
Direct execution |
| Bytecode VM | epl vm app.epl |
Stack-based VM |
| 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 |
Ecosystem
Official Package Registry โ 22 Packages
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 registry
Browse all packages at the EPL Package Registry โ
Standard Library โ 21 Modules
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.
JavaScript/TypeScript Bridge
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
What Can You Build
|
๐ Web Applications & APIs Create WebApp called app
Route "/api/users" responds with
users = query(db, "SELECT * FROM users")
Send json Map with data = users
End
๐ค AI & Machine Learning Import "epl.ai" As ai
messages = [Map with role = "user" and content = "Explain EPL"]
response = ai.chat(messages)
Say response
๐๏ธ Database Applications Import "epl-db"
db = open("app.db")
create_table(db, "tasks", Map with title = "TEXT" and done = "INT")
insert(db, "tasks", Map with title = "Ship EPL" and done = 0)
|
๐ฑ Android Apps epl android app.epl
# โ Full Android Studio project with Kotlin
๐ iOS Apps 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
|
Feature Matrix
| 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, AI Error Explainer (epl fix), dual-model copilot (Groq/Gemini) |
| 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 | 300+ built-in functions: HTTP, DB, Math, Crypto, File I/O, JSON, Regex, DateTime, HTML |
CLI Reference
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> AI-powered error diagnostics
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
Comparison
| 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 | โ | โ |
VS Code Extension
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 300+ built-in functions
- Run & Check โ
Ctrl+Shift+Rto run,Ctrl+Shift+Kto type-check
Install from the VS Code Marketplace โ
Documentation
| 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 |
Contributing
We welcome contributions from the community. EPL maintains enterprise-grade code quality standards with automated CI, Ruff formatting, and comprehensive test coverage.
git clone https://github.com/abneeshsingh21/EPL.git
cd EPL
pip install -e ".[dev,cloud]"
ruff format .
pytest tests/ -x --tb=short -q
Before 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.
Roadmap
- 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) and iOS (SwiftUI) transpilers
- 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, 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
- WebSocket real-time collaboration
- Language server protocol v2 (semantic tokens, rename, references)
- GPU compute target (CUDA/ROCm via LLVM)
Community
- GitHub Discussions โ Questions, ideas, and project showcase
- Issue Tracker โ Bug reports and feature requests
- Package Registry โ Browse and publish EPL packages
License
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file eplang-7.9.0.tar.gz.
File metadata
- Download URL: eplang-7.9.0.tar.gz
- Upload date:
- Size: 960.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9ee291b625c9361071e0f3f3b54a860c2533b3a08becd90bc2458c8dae84a79
|
|
| MD5 |
e5b8074997eeca016e2c7aff4e5448cc
|
|
| BLAKE2b-256 |
e15962cacc2765370d20a99c979e8aaaf125e75359ae00eb7d8e06956f8d6482
|
File details
Details for the file eplang-7.9.0-py3-none-any.whl.
File metadata
- Download URL: eplang-7.9.0-py3-none-any.whl
- Upload date:
- Size: 936.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f34e15a636eb5ab3433047bab0b74bc2e9fecbb950d1d7dc591840626be788aa
|
|
| MD5 |
2e23cb9e6688c85e91fac1d19047b98c
|
|
| BLAKE2b-256 |
594ca9b0e63f8ace7ed81d79ed5c6e71b1a219ebd689ba9b17db7bad574a4e63
|