Echo
Echo is a small interpreted scripting language. Types are declared explicitly and checked at runtime. Abort is the default failure mode; recovery is inquiry and *Or twins, not try / catch.
Docs: https://deekshith-poojary98.github.io/echo/ — includes a browser playground.
name: str = "Echo";
scores: list = [95, 85, 75];
fn greet(name: str) -> void {
say("Hello, ${name}!");
}
greet(name);
for i: int in 0..10 by 2 {
say("Count:", i);
}
What you get
- Typed declarations and parameters; runtime checks on bind / assign / return
listandhash, string interpolation, method calls,use mut, lexical scope- File modules:
export/import name from "module" - Type aliases, object types (
exact { ... }too), unions (int | str), first-class functions and builtins-as-values - Nominal
classwithnew { ... }fields, methods (this), type methods, unbound methods, andinterface(optionalimplements; no inheritance) - CLI: run a file, REPL,
check,test,fmt,lint
What you do not
- No class inheritance (
extends), no generics, notry/catch - Type inference is limited — you still declare types
- See Known Limitations and failure model
Install
Python 3.10+. Prefer the command name elang — short, and shells often reserve echo. The package also registers echolang (and echo).
Package name on PyPI is echolang.
pipx (recommended)
python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install echolang
elang --version
From GitHub instead of PyPI:
pipx install git+https://github.com/deekshith-poojary98/echo.git
From a clone
pip install .
# or: pip install -e .
elang path/to/file.echo
Without installing
python src/main.py examples/language_feature_smoke.echo
python src/main.py examples/language_feature_smoke.echo --plain
Repo launchers: ./elang (Unix) or .\elang.bat (Windows). ./echolang still works.
Layout
src/echo/— frontend, semantics, modules, runtime, CLIdocs/— VitePress site (this is the docs source)docs/language-semantics.md— language contract (v0.2 base; additive through 0.8.x)docs/module-semantics.md— v0.3 module contract*.echo/examples/— sample programs (includingexamples/classes_and_interfaces.echo)
License / contributing
License and contribution guidelines are not filled in yet.
Release files for echolang 0.8.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| echolang-0.8.9.tar.gz | 86.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echolang-0.8.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 180.0 kB
Release files / echolang-0.8.9.tar.gz
| Download URL | echolang-0.8.9.tar.gz |
|---|---|
| Size | 86.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
12460a75defee7a0213195a359d50fe0c6af89ee1ed07a7ebad460e7507a0322
|
|
BLAKE2b-256 checksum How to use checksums |
2c4a4ca3c62ee2b76712a6435715940fd9f1b147dd6b5feccbea1def67fc1d56
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / echolang-0.8.9-py3-none-any.whl
| Download URL | echolang-0.8.9-py3-none-any.whl |
|---|---|
| Size | 93.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fe001cab68ac76e6e1f336d3ccac2418e70952593fff46c5a250e458034e1313
|
|
BLAKE2b-256 checksum How to use checksums |
31f8309b3583687c4729edbae4f0a31c691073af58163f59ed6cce07db5c682e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|