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
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 1.0.0)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 1.0.0
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-1.0.0.tar.gz | 94.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| echolang-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 197.3 kB
Release files / echolang-1.0.0.tar.gz
| Download URL | echolang-1.0.0.tar.gz |
|---|---|
| Size | 94.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7e60acab05bc51c684cb07f657b06c56e1d8c36b0160edf8d323ae1cbe8fc24
|
|
BLAKE2b-256 checksum How to use checksums |
8927fe208ff26968743ab6639fc5e278f8c74fb4879fff2f1952eac12ebdd3d7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|
Release files / echolang-1.0.0-py3-none-any.whl
| Download URL | echolang-1.0.0-py3-none-any.whl |
|---|---|
| Size | 102.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f2de0ce49e01b6f78ab876c9d50443ff70f86cc936551fddc9fb19168772b88
|
|
BLAKE2b-256 checksum How to use checksums |
8248a0da7978f4c1af5b8a11b6426205a7db7760b531e3cfdcd43482ea98b942
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.9
|