Skip to main content

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.

import add from "lib/math";
import stdOk from "std/meta";

say("2+3 =", add(2, 3));
say("std ready:", stdOk());

2.0 is path resolution + std modules — nested / relative imports and import … from "std/…". It is not a package manager (no registry, lockfiles, or elang add).

2.1 is YAML + a thin LSP stub + std maturity on that surface — std/yaml, elang lsp / editor client, abort Stack: / trace, further peels (std/math, std/random, …), elang std, and generated inventories. Still not a package registry or full IDE language server.

What you get

  • Typed declarations and parameters; runtime checks on bind / assign / return
  • list and hash, string interpolation, method calls, use mut, lexical scope
  • File modules: export / import name from "module" (sibling, ./…, ../…, nested "lib/math", reserved "std/…")
  • Type aliases, object types (exact { ... } too), unions (int | str), first-class functions and builtins-as-values
  • Nominal class with new { ... } fields, methods (this), type methods, unbound methods, and interface (optional implements; no inheritance)
  • Thin scripting stdlib via prelude and/or std/… (std/fs, std/json, std/os, std/re, std/time, std/http, std/url, std/base64, std/yaml, std/math, std/random); optional --require-std hides peeled prelude names; host-gated where noted
  • CLI: run a file, REPL, check, test, fmt, lint, builtins, std, lsp
  • Editor: VS Code / Cursor extension with TextMate highlighting, tasks, and elang lsp (hover, goto-def, diagnostics)

What you do not

  • No class inheritance (extends), no generics, no try / catch, no package registry
  • 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.

python3 -m pip install --user pipx
python3 -m pipx ensurepath
pipx install echolang
elang --version
elang builtins --count
elang std
elang std --exports

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, CLI
  • src/echo/std/ — install-tree modules for import … from "std/…"
  • docs/ — VitePress site (this is the docs source)
  • docs/language-semantics.md — language contract (v0.2 base; additive through 2.1.x)
  • docs/module-semantics.md — v0.3 module contract (+ 2.0 / 2.1 path / std notes)
  • docs/reference/builtin-inventory.md — generated prelude list
  • docs/reference/std-inventory.md — generated std/… modules + exports (python tools/sync_builtins.py)
  • examples/ — sample programs (std_imports.echo, yaml_and_math.echo, modules_demo/, …)

License / contributing

License and contribution guidelines are not filled in yet.

Metadata

Release files for echolang 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for echolang 2.2.0
File Size Uploaded Provenance Actions
echolang-2.2.0.tar.gz 118.8 kB Without provenance Details for echolang-2.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for echolang 2.2.0
File Interpreter ABI Platform Actions
echolang-2.2.0-py3-none-any.whl Python 3 none any Details for echolang-2.2.0-py3-none-any.whl

Total release size: 253.2 kB

Release files / echolang-2.2.0.tar.gz

Download URL echolang-2.2.0.tar.gz
Size 118.8 kB
Tags Source
SHA-256 checksum
How to use checksums
afd28f5e0accdbe978c06bbde0f66b4a987a4147949e5703b25c9b1633527d0c
BLAKE2b-256 checksum
How to use checksums
ad0bfa1a9e755946b1a1aa2323caf3d908abd4ebaaff5c19fca9e5592dace5a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Release files / echolang-2.2.0-py3-none-any.whl

Download URL echolang-2.2.0-py3-none-any.whl
Size 134.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
134e8bbde8c9b87de370807032f5bb384bad3f464ea5ab8d0887a948c38e3cde
BLAKE2b-256 checksum
How to use checksums
ed8ef15df439a18d8380d9e05bf668085478ce0a89be0366f8edbb7cbc372847
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.15

Security for echolang 2.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page