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 Downloads Python License VS Code Stars


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:

CategoryPackagesDescription
Web & APIepl-web ยท epl-httpHTTP router, WebSocket, REST client, middleware
Data & DBepl-db ยท epl-dataframe ยท epl-collectionsSQLite ORM, DataFrame ops, typed collections
AI & MLepl-learn ยท epl-array ยท epl-plotScikit-learn bindings, NumPy arrays, Matplotlib charts
Math & Scienceepl-math ยท epl-science ยท epl-algoNumber theory, SciPy integration, graph algorithms
Securityepl-auth ยท epl-crypto ยท epl-validatorJWT auth, hashing/encryption, input validation
Infrastructureepl-cloud ยท epl-cache ยท epl-emailAWS/GCP/Azure, Redis caching, SMTP
Languageepl-string ยท epl-datetime ยท epl-functional ยท epl-structString utils, date ops, FP patterns, typed records
Testingepl-testUnit 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 .epl files
  • 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+R to run, Ctrl+Shift+K to 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:

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


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


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.7.0.tar.gz (929.0 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.7.0-py3-none-any.whl (929.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for eplang-7.7.0.tar.gz
Algorithm Hash digest
SHA256 322d99cb849beb601cf08f4f2fbd2e81f2b9965988183142f2e9a644c1498c1f
MD5 d77e431c30aadae5eb4c8a1ef31830c1
BLAKE2b-256 0cf0f5045671efd79998cde6b0f3d8a9ad8ef32a7ec48532f0171f503d29d84f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: eplang-7.7.0-py3-none-any.whl
  • Upload date:
  • Size: 929.5 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.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6adfe263d284bce3994277a508f237463fd5474cd905a3ff4b546f973bbe3d8b
MD5 27be43ecb4f91c890197f164e4d06a6b
BLAKE2b-256 796984355979a228cebd84863c259d41b4f7bdf346d1508d0b7bc72008e3e957

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