Packages

Every package on the ecko-lang org. Name the repository and that address is the package: no registry, no account, nobody to ask.

40 packages

  • bisect

    Binary search over a sorted list: insertion points, membership, and order-preserving insert.

    pure

    docs for bisect

  • cache

    In-memory LRU cache with TTL over an optional disk store. get, set, and remember(key, ttl, fn).

    fs:read fs:write

    docs for cache

  • checkpoint

    Resumable long-running jobs: a transactional cursor over std.sql, so a restart resumes.

    pure

    docs for checkpoint

  • cli

    Command-line argument parsing: typed flags, options, positionals, defaults, and generated usage.

    pure

    docs for cli

  • clipboard

    Read and write the OS clipboard: pbcopy on macOS, clip on Windows, wl-copy or xclip on Linux.

    exec env

    docs for clipboard

  • cookies

    Parse and serialize HTTP cookies for client sessions: read Set-Cookie into a jar, build the Cookie header.

    pure

    docs for cookies

  • cron

    Cron expressions: parse the five fields, find the next fire time, and test a moment.

    pure

    docs for cron

  • datetime

    Calendar dates, times, and durations: components, arithmetic, and formatting over Unix-ms timestamps.

    pure

    docs for datetime

  • deque

    A double-ended queue: push, pop, and peek at both ends, amortized O(1). Immutable two-stack deque.

    pure

    docs for deque

  • fuzzy

    String similarity: Levenshtein, Jaro-Winkler, Dice and Jaccard, plus best-match selection over a list.

    pure

    docs for fuzzy

  • geo

    Geospatial basics: geohash encode and decode, great-circle distance and bearing, and bounding boxes.

    pure

    docs for geo

  • graph

    Adjacency-list graphs: build, traverse, and answer reachability and path questions.

    pure

    docs for graph

  • heap

    A priority queue (min-heap): push, pop, and peek, heapify, and top-k. Immutable skew heap.

    pure

    docs for heap

  • html

    A tolerant HTML parser: parse to a node tree, extract text, and find elements.

    pure

    docs for html

  • humanize

    Durations, byte sizes, relative times, ordinals and counted words, written for people to read.

    pure

    docs for humanize

  • i18n

    Message catalogues: JSON files, {name} interpolation, and CLDR plural rules.

    fs:read

    docs for i18n

  • idempotency

    Idempotency-Key store for mutating HTTP APIs, backed by std.sql.

    pure

    docs for idempotency

  • inflect

    String inflection: URL slugs, English pluralisation, ordinals, and identifier case conversion.

    pure

    docs for inflect

  • ip

    IPv4 and IPv6 address parsing, validation, CIDR membership, and private-range checks.

    pure

    docs for ip

  • markdown

    Markdown to blocks and safe HTML, plus the headings, code blocks and tables in it.

    pure

    docs for markdown

  • mcp

    Model Context Protocol, both directions: call an MCP server's tools, or be one.

    net exec

    docs for mcp

  • mime

    Build MIME messages (multipart, attachments, RFC 5322) and look up media types by file extension.

    pure

    docs for mime

  • money

    Exact currency arithmetic on Decimal: ISO 4217 minor units, and allocation that never loses a cent.

    pure

    docs for money

  • mysql-client

    A MySQL and MariaDB client: classic protocol and mysql_native_password over std.net.

    import mysql_client as mysql

    net

    docs for mysql-client

  • outbox

    Transactional outbox with at-least-once relay over std.sql.

    pure

    docs for outbox

  • perf

    Benchmark and time your own code: time, measure, and bench with best-of-N stats.

    pure

    docs for perf

  • postgresql-client

    A PostgreSQL client: v3 wire protocol and SCRAM-SHA-256 over std.net.

    import postgresql_client as postgresql

    net

    docs for postgresql-client

  • queue

    Durable job queue with leases over std.sql.

    pure

    docs for queue

  • redact

    Sensitive-key detection and masking for safe logging: is_sensitive_key, mask, and recursive map_of.

    pure

    docs for redact

  • redis-client

    A Redis client (RESP2) over std.net raw sockets and TLS.

    import redis_client as redis

    net

    docs for redis-client

  • semver

    Semantic Versioning 2.0.0: parse, compare, sort, and match version ranges.

    pure

    docs for semver

  • smtp-client

    An SMTP client (RFC 5321): send email over raw sockets and STARTTLS.

    import smtp_client as smtp

    net

    docs for smtp-client

  • stats

    Descriptive statistics: mean, median, mode, variance, stdev, and quantiles.

    pure

    docs for stats

  • struct

    Pack and unpack binary data with a struct-style format string, over the bytes type.

    pure

    docs for struct

  • textwrap

    Wrap, fill, indent, dedent, and shorten text, for prompt building and terminal output.

    pure

    docs for textwrap

  • tui

    Terminal UI composition: width-aware pad, center, and truncate, bordered boxes, and aligned tables over std.term.

    pure

    docs for tui

  • url

    URL parsing, query strings, and RFC 3986 reference resolution.

    pure

    docs for url

  • validate

    Composable validator functions, whole-object schemas, and collect-all errors.

    pure

    docs for validate

  • webkit

    Web-app batteries: HTML templates that escape by default, CSRF protection, and revocable sessions.

    fs:read net

    docs for webkit

  • xml

    An XML parser: parse to a node tree, query by tag or path, extract text, and rebuild.

    pure

    docs for xml

31 of the 40 declare pure: they ask for nothing at all. Capabilities are what a package declares it needs, and what you actually enforce is the grant you give it when you import. How manifests work →