Packages

Dawn source packages kept in this repository beside the compiler. Each is a project with its own dawn.toml, used as a path dependency or from a release's source archive.

  • 11 packages
  • read from dawn.toml, README.md and dawn doc
packagemanifest nameversionsummarydepends ondependency
fspathfspath1.0.0

String functions over POSIX paths: normalize, resolve, join and split them without touching the filesystem.

fspath/fspath

std onlypathfspath = "<dawn-lang>/packages/fspath"archivedawn add <archive> \ --subdir packages/fspath
inflateinflate33.1.1

Pure Dawn readers for raw DEFLATE, gzip and ZIP, plus CRC-32.

inflate/crc32 inflate/deflate inflate/gzip inflate/zip

std onlypathinflate = "<dawn-lang>/packages/inflate"archivedawn add <archive> \ --subdir packages/inflate --as inflate
jsonjson22.0.2

A JSON (RFC 8259) parser and renderer in pure Dawn that keeps integers exact and reports errors a caller can branch on.

json/lexer json/parser json/render json/value

std onlypathjson = "<dawn-lang>/packages/json"archivedawn add <archive> \ --subdir packages/json --as json
sha2sha22.0.1

SHA-256 (FIPS 180-4) in pure Dawn, with an incremental digest and a one-shot hex helper.

sha2/sha256

std onlypathsha2 = "<dawn-lang>/packages/sha2"archivedawn add <archive> \ --subdir packages/sha2
tea_coretea_core0.2.0

The vocabulary-free half of the Elm architecture: what a tree owes a reconciler, the reconciler, the walk, trait App, and subscriptions.

tea_core/app tea_core/cmd tea_core/diff tea_core/sub tea_core/tree tea_core/walk

std onlypathtea_core = "<dawn-lang>/packages/tea-core"archivedawn add <archive> \ --subdir packages/tea-core
tea_domtea_dom0.5.0

The DOM half of the Elm architecture: a second vocabulary over packages/tea-core's reconciler contract, the wire format that carries a patch list out of a wasm module, and the reactor turn that answers one host message.

tea_dom/dsl tea_dom/node tea_dom/reactor tea_dom/render tea_dom/route tea_dom/wire

tea_core jsonpathtea_dom = "<dawn-lang>/packages/tea-dom"archivedawn add <archive> \ --subdir packages/tea-dom
tea_termtea_term0.4.1

The terminal half of the Elm architecture: the widget vocabulary, its DSL, its renderer, the row presenter, routing, and the driver loop.

tea_term/dsl tea_term/present tea_term/render tea_term/route tea_term/runtime tea_term/step tea_term/widget

tea_corepathtea_term = "<dawn-lang>/packages/tea-term"archivedawn add <archive> \ --subdir packages/tea-term
tileirtileir0.17.0

A pure Dawn generator of CUDA Tile IR that records a kernel body written against the Dev effect and emits it as cuda_tile text or as bytecode tileiras can assemble.

tileir/asm tileir/bytecode tileir/dev tileir/lower tileir/prog tileir/render

std onlypathtileir = "<dawn-lang>/packages/tileir"archivedawn add <archive> \ --subdir packages/tileir
tilereftileref0.1.0

Host reference implementations of the Tile IR kernels: for each kernel, a pure function that answers what the device's output buffer should hold.

tileref/ref

std onlypathtileref = "<dawn-lang>/packages/tileref"archivedawn add <archive> \ --subdir packages/tileref
webweb66.2.1

A small HTTP/1.1 framework over jdk.httpserver: routes are data, handlers are fn(Request) -> Result[Response, HttpError] !io, middleware are handler transformers.

web/middleware web/router web/server web/types

jsonpathweb = "<dawn-lang>/packages/web"archivedawn add <archive> \ --subdir packages/web --as web
xmapxmap0.1.2

Pairs a program's source with the C text and the JVM bytecode it compiles to: which call wrote which lines. A function of strings and records, with no I/O.

xmap/dawnmap xmap/javap xmap/panes xmap/source xmap/table xmap/xmap

std onlypathxmap = "<dawn-lang>/packages/xmap"archivedawn add <archive> \ --subdir packages/xmap

<dawn-lang> is a checkout of this repository, relative to the consumer's dawn.toml. <archive> is a release's source archive, such as https://github.com/dawnop/dawn-lang/archive/refs/tags/v0.90.0.zip; dawn add fetches it and writes url, version, hash and subdir under [deps.<alias>].

A package at major version 2 or later carries the major at the end of its manifest name (json2, web6). The alias in the first column is the name use lines spell, so a major bump does not move them.