Metadata-Version: 2.4
Name: eplang
Version: 7.5.9
Summary: EPL - English Programming Language: write code in plain English. Build apps, web servers, and more.
Author-email: Abneesh Singh <singhabneesh250@gmail.com>
License-Expression: Apache-2.0
Project-URL: Homepage, https://github.com/abneeshsingh21/EPL
Project-URL: Documentation, https://github.com/abneeshsingh21/EPL/tree/main/docs
Project-URL: Repository, https://github.com/abneeshsingh21/EPL
Keywords: programming-language,english,interpreter,compiler,transpiler
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Software Development :: Interpreters
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: NOTICE
Provides-Extra: llvm
Requires-Dist: llvmlite>=0.41.0; extra == "llvm"
Provides-Extra: ai
Requires-Dist: openai>=1.0.0; extra == "ai"
Provides-Extra: server
Requires-Dist: waitress>=2.1.0; extra == "server"
Requires-Dist: uvicorn>=0.30.0; extra == "server"
Requires-Dist: hypercorn>=0.16.0; extra == "server"
Requires-Dist: daphne>=4.1.0; extra == "server"
Requires-Dist: gunicorn>=21.2; platform_system != "Windows" and extra == "server"
Provides-Extra: redis
Requires-Dist: redis>=5.0.0; extra == "redis"
Provides-Extra: repl
Requires-Dist: prompt_toolkit>=3.0.0; extra == "repl"
Requires-Dist: pygments>=2.15.0; extra == "repl"
Provides-Extra: cloud
Requires-Dist: boto3>=1.28.0; extra == "cloud"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: coverage>=7.0; extra == "dev"
Requires-Dist: build>=1.0.0; extra == "dev"
Requires-Dist: ruff>=0.1.0; extra == "dev"
Provides-Extra: all
Requires-Dist: waitress>=2.1.0; extra == "all"
Requires-Dist: uvicorn>=0.30.0; extra == "all"
Requires-Dist: hypercorn>=0.16.0; extra == "all"
Requires-Dist: daphne>=4.1.0; extra == "all"
Requires-Dist: gunicorn>=21.2; platform_system != "Windows" and extra == "all"
Requires-Dist: prompt_toolkit>=3.0.0; extra == "all"
Requires-Dist: pygments>=2.15.0; extra == "all"
Requires-Dist: boto3>=1.28.0; extra == "all"
Dynamic: license-file

<div align="center">

# 🌐 EPL — English Programming Language

### *Write code the way you think. In plain English.*

[![PyPI version](https://img.shields.io/pypi/v/eplang?color=blue&label=pip%20install%20eplang&style=for-the-badge)](https://pypi.org/project/eplang/)
[![Python](https://img.shields.io/badge/Python-3.9%2B-blue?style=for-the-badge&logo=python)](https://python.org)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-green?style=for-the-badge)](LICENSE)
[![VS Code](https://img.shields.io/badge/VS%20Code-Extension-007ACC?style=for-the-badge&logo=visual-studio-code)](https://marketplace.visualstudio.com/publishers/epl-lang)
[![GitHub Stars](https://img.shields.io/github/stars/abneeshsingh21/EPL?style=for-the-badge&logo=github)](https://github.com/abneeshsingh21/EPL/stargazers)
[![CI/CD](https://img.shields.io/github/actions/workflow/status/abneeshsingh21/EPL/ci.yml?style=for-the-badge&logo=github)](https://github.com/abneeshsingh21/EPL/actions/workflows/ci.yml)
[![Lint](https://img.shields.io/github/actions/workflow/status/abneeshsingh21/EPL/lint.yml?label=Ruff%20Lint&style=for-the-badge)](https://github.com/abneeshsingh21/EPL/actions/workflows/lint.yml)
[![CodeRabbit](https://img.shields.io/badge/AI%20Review-CodeRabbit-orange?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0id2hpdGUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48L3N2Zz4=)](https://coderabbit.ai)

<br/>

> **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.

<br/>

```
pip install eplang
```

</div>

---

## ✨ What does EPL look like?

```epl
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

```bash
pip install eplang
```

### Run your first program

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

### Start the interactive REPL

```bash
epl repl
```

### Create a full project

```bash
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

```bash
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
```epl
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
```epl
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
```epl
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
```epl
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)
```bash
epl android myapp/main.epl   # Generates full Android Studio project
```

### 🍎 iOS Apps (SwiftUI project generation)
```bash
epl ios myapp/main.epl       # Generates Xcode / SwiftUI project
```

### 🖥️ Desktop Apps
```bash
epl desktop myapp/main.epl   # Generates Compose Multiplatform desktop app
```

### ⚡ Native Executables
```bash
epl build myapp/main.epl     # Compiles via LLVM to native .exe / binary
```

### 🔌 JavaScript/TypeScript Bridge
```epl
Use javascript "lodash" as lodash
Use javascript "axios" as axios

Say lodash.capitalize("hello from epl")
response = axios.get("https://api.example.com/data")
Say response.data
```

### ☸️ Kubernetes Deployment
```bash
epl deploy k8s myapp/main.epl --image myapp:1.0 --host myapp.example.com --tls
```

### 📊 Observability & Monitoring
```epl
Create WebApp called app

Import "epl.observability" As obs
obs.attach(app)

Note: Auto-adds /_health, /_ready, /_metrics endpoints
```

---

## 📦 CLI Reference

```bash
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 js <file.epl>         # Transpile to JavaScript
epl python <file.epl>     # Transpile to Python
epl kotlin <file.epl>     # Transpile to Kotlin
epl android <file.epl>    # Generate Android project
epl ios <file.epl>        # Generate iOS project
epl desktop <file.epl>    # Generate desktop app
epl web <file.epl>        # Generate web app (WASM/JS/Kotlin-JS)
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
epl playground            # Start browser playground
epl copilot               # AI code assistant
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 |
| **DevOps** | K8s manifests, AWS/GCP/Azure deploy, Prometheus metrics, health checks, structured logging |
| **JS Bridge** | `Use javascript/typescript` for NPM ecosystem access, persistent Node.js subprocess |
| **Standard Library** | 300+ functions across HTTP, DB, Math, Crypto, File I/O, JSON, Regex, Date |

---

## 📚 Documentation

| Resource | Link |
|----------|------|
| Documentation Site | [abneeshsingh21.github.io/EPL](https://abneeshsingh21.github.io/EPL/) |
| Language Reference | [docs/language-reference.md](docs/language-reference.md) |
| Getting Started | [docs/getting-started.md](docs/getting-started.md) |
| Publishing Packages | [docs/publishing.md](docs/publishing.md) |
| Architecture | [docs/architecture.md](docs/architecture.md) |
| Package Manager | [docs/package-manager.md](docs/package-manager.md) |
| Tutorials | [docs/tutorials.md](docs/tutorials.md) |
| Changelog | [CHANGELOG.md](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](https://marketplace.visualstudio.com/publishers/epl-lang).

---

## 💬 Community

- [GitHub Discussions](https://github.com/abneeshsingh21/EPL/discussions) — Ask questions, share projects, propose features
- [Issue Tracker](https://github.com/abneeshsingh21/EPL/issues) — Bug reports and feature requests
- [Package Registry](https://abneeshsingh21.github.io/epl-packages-index/) — Browse and publish EPL packages

---

## 🤝 Contributing

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

Before contributing, please read:
- [CONTRIBUTING.md](CONTRIBUTING.md) for the automated testing and Ruff formatting requirements.
- [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for our community standards.
- [CLA.md](CLA.md) for our required Contributor License Agreement.

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

See [CONTRIBUTORS.md](CONTRIBUTORS.md) for the list of contributors.

---

## 🗺️ Roadmap

- [x] Core language (interpreter + VM + LLVM)
- [x] Web framework, ORM, async I/O
- [x] Package manager with lockfiles
- [x] LSP server, debugger, REPL
- [x] Android & Desktop transpilers
- [x] PyPI release (`pip install eplang`)
- [x] VS Code extension
- [x] Official documentation website
- [x] Online playground (try EPL in browser with AST-Aware AI Copilot)
- [x] iOS transpiler (SwiftUI project generation)
- [x] EPL Notebook (Jupyter-style)
- [x] Kubernetes & Cloud Deploy (AWS/GCP/Azure)
- [x] JavaScript/TypeScript Bridge (NPM interop)
- [x] Observability (health checks, metrics, structured logging)
- [ ] Community package registry
- [ ] WebSocket real-time collaboration

---

## 📄 License

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

Licensed under the **Apache License 2.0**. See [LICENSE](LICENSE) for details.

> "EPL" and "English Programming Language" are trademarks of Abneesh Singh. See [NOTICE](NOTICE) for strict attribution requirements.

---

<div align="center">

**⭐ Star this repo if EPL excites you!**

Made with ❤️ by [Abneesh Singh](https://github.com/abneeshsingh21)

</div>
