Packages
Every package published on the ecko-lang org, installable with one command. There is no registry to search and no account to create: the repository address is the package.
30 packages
-
bisectpure
Binary search over a sorted list: insertion points, membership, and order-preserving insert.
import bisectecko get github.com/ecko-lang/bisect -
cachefs:read fs:write
In-memory LRU cache with TTL over an optional disk store. get, set, and remember(key, ttl, fn).
import cachedocs →ecko get github.com/ecko-lang/cache -
clipure
Command-line argument parsing: typed flags, options, positionals, defaults, and generated usage.
import clidocs →ecko get github.com/ecko-lang/cli -
cookiespure
Parse and serialize HTTP cookies for client sessions: read Set-Cookie into a jar, build the Cookie header.
import cookiesdocs →ecko get github.com/ecko-lang/cookies -
datetimepure
Calendar dates, times, and durations: components, arithmetic, and formatting over Unix-ms timestamps.
import datetimedocs →ecko get github.com/ecko-lang/datetime -
dequepure
A double-ended queue: push, pop, and peek at both ends, amortized O(1). Immutable two-stack deque.
import dequedocs →ecko get github.com/ecko-lang/deque -
fuzzypure
String similarity: Levenshtein, Jaro-Winkler, Dice and Jaccard, plus best-match selection over a list.
import fuzzyecko get github.com/ecko-lang/fuzzy -
geopure
Geospatial basics: geohash encode and decode, great-circle distance and bearing, and bounding boxes.
import geoecko get github.com/ecko-lang/geo -
graphpure
Adjacency-list graphs: build, traverse, and answer reachability and path questions.
import graphecko get github.com/ecko-lang/graph -
heappure
A priority queue (min-heap): push, pop, and peek, heapify, and top-k. Immutable skew heap.
import heapdocs →ecko get github.com/ecko-lang/heap -
htmlpure
A tolerant HTML parser: parse to a node tree, extract text, and find elements.
import htmldocs →ecko get github.com/ecko-lang/html -
inflectpure
String inflection: URL slugs, English pluralisation, ordinals, and identifier case conversion.
import inflectecko get github.com/ecko-lang/inflect -
ippure
IPv4 and IPv6 address parsing, validation, CIDR membership, and private-range checks.
import ipdocs →ecko get github.com/ecko-lang/ip -
mcpnet
Model Context Protocol, both directions: call an MCP server's tools, or be one.
import mcpecko get github.com/ecko-lang/mcp -
mimepure
Build MIME messages (multipart, attachments, RFC 5322) and look up media types by file extension.
import mimeecko get github.com/ecko-lang/mime -
moneypure
Exact currency arithmetic on Decimal: ISO 4217 minor units, and allocation that never loses a cent.
import moneyecko get github.com/ecko-lang/money -
mysql-clientnet
A MySQL and MariaDB client: classic protocol and mysql_native_password over std.net.
import "mysql-client" as mysqldocs →ecko get github.com/ecko-lang/mysql-client -
perfpure
Benchmark and time your own code: time, measure, and bench with best-of-N stats.
import perfdocs →ecko get github.com/ecko-lang/perf -
postgresql-clientnet
A PostgreSQL client: v3 wire protocol and SCRAM-SHA-256 over std.net.
import "postgresql-client" as postgresqldocs →ecko get github.com/ecko-lang/postgresql-client -
redactpure
Sensitive-key detection and masking for safe logging: is_sensitive_key, mask, and recursive map_of.
import redactdocs →ecko get github.com/ecko-lang/redact -
redis-clientnet
A Redis client (RESP2) over std.net raw sockets and TLS.
import "redis-client" as redisdocs →ecko get github.com/ecko-lang/redis-client -
semverpure
Semantic Versioning 2.0.0: parse, compare, sort, and match version ranges.
import semverecko get github.com/ecko-lang/semver -
smtp-clientnet
An SMTP client (RFC 5321): send email over raw sockets and STARTTLS.
import "smtp-client" as smtpdocs →ecko get github.com/ecko-lang/smtp-client -
statspure
Descriptive statistics: mean, median, mode, variance, stdev, and quantiles.
import statsdocs →ecko get github.com/ecko-lang/stats -
structpure
Pack and unpack binary data with a struct-style format string, over the bytes type.
import structdocs →ecko get github.com/ecko-lang/struct -
textwrappure
Wrap, fill, indent, dedent, and shorten text, for prompt building and terminal output.
import textwrapdocs →ecko get github.com/ecko-lang/textwrap -
tuipure
Terminal UI composition: width-aware pad, center, and truncate, bordered boxes, and aligned tables over std.term.
import tuidocs →ecko get github.com/ecko-lang/tui -
ecko get github.com/ecko-lang/url -
validatepure
Composable validator functions, whole-object schemas, and collect-all errors.
import validatedocs →ecko get github.com/ecko-lang/validate -
xmlpure
An XML parser: parse to a node tree, query by tag or path, extract text, and rebuild.
import xmldocs →ecko get github.com/ecko-lang/xml
Nothing matches that. Try a shorter word.
Capabilities are what a package declares it needs. What is
actually enforced is the grant you give it when you import, so
pure means it asks for nothing at all.
How manifests work →