Skip to main content

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.

PyPI version Python License: Apache 2.0 VS Code GitHub Stars CI/CD Lint


EPL is a fully-featured, production-ready programming language where every keyword is natural English. Build web apps, APIs, Android apps, desktop tools, AI pipelines — all in a syntax anyone can read.


pip install eplang

✨ What does EPL look like?

Note: Hello World
Say "Hello, World!"

Note: Variables
name = "Abneesh"
age = 20

Note: Conditionals
If age is greater than 18 then
    Say "Welcome, " + name
Otherwise
    Say "Access denied"
End

Note: Functions
Function greet takes person
    Return "Hello, " + person + "!"
End

Say greet("World")

Note: Loops
Repeat 5 times
    Say "EPL is awesome!"
End

Note: Lists
fruits = ["apple", "banana", "mango"]
For Each fruit in fruits
    Say fruit
End

Note: Web Server
Create WebApp called app

Route "/" shows
    Page "Welcome"
        Heading "Welcome to EPL"
        Text "This page is served by the native EPL web runtime."
    End
End

Route "/api/health" responds with
    Send json Map with status = "ok"
End

No semicolons. No curly braces. No cryptic symbols. Just English.


🚀 Quick Start

Install

pip install eplang

Run your first program

echo 'Say "Hello from EPL!"' > hello.epl
epl hello.epl

Start the interactive REPL

epl repl

Create a full project

epl new myapp --template web
epl new authapp --template auth
epl new botapp --template chatbot
epl new studio --template frontend
cd myapp
epl serve

Production serving

pip install "eplang[server]"

EPL supports production WSGI and ASGI deployment through generated adapters and the epl serve runtime surface.

  • WSGI: Waitress and Gunicorn
  • ASGI: Uvicorn and Hypercorn
  • Adapter generation: WSGI / ASGI deploy entrypoints for external servers such as Daphne or other ASGI hosts

For multi-worker ASGI deployment, use the generated deploy/asgi.py entrypoint with your server's import-string form rather than an in-process app object launch.


🆚 EPL vs Other Languages

Feature EPL Python JavaScript Java
Syntax readability ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐
Learning curve Minutes Days Days Weeks
Web framework built-in
Android transpiler
WASM compilation
Native compiler (LLVM)
Package manager pip npm Maven
LSP / IDE support
AI assistant built-in

🏗️ What Can You Build?

🌐 Web Applications

Create WebApp called apiApp

Route "/api/users" responds with
    users = ["Alice", "Bob"]
    Send json Map with users = users and count = length(users)
End

🤖 AI & Machine Learning

Import "epl.ai" As ai

messages = [Map with role = "user" and content = "Explain quantum computing simply"]
response = ai.chat(messages)
Say response

☁️ AWS Cloud Integration

Import "epl-cloud"

Note: Use AWS services natively
s3_bucket = cloud_s3_bucket("my-epl-bucket")
cloud_s3_upload(s3_bucket, "data.txt", "Hello Cloud!")

queue = cloud_sqs_queue("task-queue")
cloud_sqs_send(queue, "Start background job")

🗄️ Database Apps

Import "epl-db"

db = open("myapp.db")
create_table(db, "users", Map with name = "TEXT" and email = "TEXT")
insert(db, "users", Map with name = "Ada" and email = "ada@example.com")
Say query(db, "SELECT * FROM users")

📱 Android Apps (Kotlin transpile)

epl android myapp/main.epl   # Generates full Android Studio project

🍎 iOS Apps (SwiftUI project generation)

epl ios myapp/main.epl       # Generates Xcode / SwiftUI project

🖥️ Desktop Apps

epl desktop myapp/main.epl   # Generates Compose Multiplatform desktop app

⚡ Native Executables

epl build myapp/main.epl     # Compiles via LLVM to native .exe / binary

📦 CLI Reference

epl run <file.epl>        # Run a program
epl repl                  # Interactive REPL
epl new <name>            # Create new project
epl build <file.epl>      # Compile to native executable
epl wasm <file.epl>       # Compile to WebAssembly
epl serve <file.epl>      # Start web server
epl test [dir]            # Run test suite
epl fix <file>            # AI Error Diagnostics
epl check [file]          # Static type checking
epl fmt <file>            # Format source code
epl lint [file]           # Lint source code
epl android <file.epl>    # Generate Android project
epl ios <file.epl>        # Generate iOS project
epl desktop <file.epl>    # Generate desktop app
epl install <package>     # Install a package
epl upgrade               # Update EPL

🔋 Feature Highlights

Category Features
Language OOP, async/await, generics, pattern matching, lambdas, generators
Performance Bytecode VM, LLVM native compiler, constant folding, dead code elimination
Web HTTP router, WebSocket, WSGI/ASGI, middleware, sessions, templates
Database SQLite ORM, Redis, PostgreSQL, Store/Fetch/Delete English APIs
Security Safe FFI sandbox, pickle allowlist, recursion limits, scope depth limits
Tooling LSP server, debugger, REPL, test framework, code coverage, formatter
Targets Interpreter, VM, LLVM native, JavaScript, Node.js, Kotlin, Python, WASM, MicroPython
Packaging SemVer package manager, lockfiles, checksums, PyPI integration
AI Built-in ai module, AI Error Explainer (epl fix), Dual "Thinking" Mode via Groq/Gemini
Standard Library 300+ functions across HTTP, DB, Math, Crypto, File I/O, JSON, Regex, Date

📚 Documentation

Resource Link
Official Book (PDF) docs/epl_book.pdf
Language Reference docs/language-reference.md
Getting Started docs/getting-started.md
Architecture docs/architecture.md
Package Manager docs/package-manager.md
Tutorials docs/tutorials.md
Changelog CHANGELOG.md

🛠️ VS Code Extension

Install the EPL extension for:

  • ✅ Syntax highlighting for .epl files
  • ✅ Real-time diagnostics (type errors, unused variables)
  • ✅ Auto-completions and hover docs
  • ✅ Run files with Ctrl+Shift+R
  • ✅ Type check with Ctrl+Shift+K

Install: Search EPL in VS Code Extensions, or visit the Marketplace.


🤝 Contributing

Contributions are welcome! We have strict enterprise guidelines to maintain code quality.

Before contributing, please read:

git clone https://github.com/abneeshsingh21/EPL.git
cd EPL
pip install -e ".[dev,cloud]"
ruff format .
pytest tests/

See CONTRIBUTORS.md for the list of contributors.


🗺️ Roadmap

  • Core language (interpreter + VM + LLVM)
  • Web framework, ORM, async I/O
  • Package manager with lockfiles
  • LSP server, debugger, REPL
  • Android & Desktop transpilers
  • PyPI release (pip install eplang)
  • VS Code extension
  • Official documentation website
  • Online playground (try EPL in browser with AST-Aware AI Copilot)
  • Community package registry
  • iOS transpiler
  • EPL Notebook (Jupyter-style)

📄 License

Copyright © 2024–2026 Abneesh Singh (singhabneesh250@gmail.com)

Licensed under the Apache License 2.0. See LICENSE for details.

"EPL" and "English Programming Language" are trademarks of Abneesh Singh. See NOTICE for strict attribution requirements.


⭐ Star this repo if EPL excites you!

Made with ❤️ by Abneesh Singh

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eplang-7.5.2.tar.gz (807.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eplang-7.5.2-py3-none-any.whl (808.3 kB view details)

Uploaded Python 3

File details

Details for the file eplang-7.5.2.tar.gz.

File metadata

  • Download URL: eplang-7.5.2.tar.gz
  • Upload date:
  • Size: 807.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for eplang-7.5.2.tar.gz
Algorithm Hash digest
SHA256 a506ad97d9046899221353c30b4e697920794f5f66363599a71cd1ebfcc3a34e
MD5 1caad77cc5f27c20f11e79c251a61b35
BLAKE2b-256 ac0241df6f59eedf84dc1bdcc39cf2d0d95ebda83508e906061b55841bcf64cd

See more details on using hashes here.

File details

Details for the file eplang-7.5.2-py3-none-any.whl.

File metadata

  • Download URL: eplang-7.5.2-py3-none-any.whl
  • Upload date:
  • Size: 808.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for eplang-7.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3924d15dfa70cf6f2817d99dbcf2b5d2580d43ff7aa5d24fa70ee4c895b47c67
MD5 63958366cdfbfa4d121eebbb27336810
BLAKE2b-256 4c280691d1200b867592e9bd87fa67fcb24dbceebae5d8f2664b240e8d5696d6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page