joetjen.net
EN DE
Programming language

Products

What the Praxis repository holds besides the language: an application, a web framework, the toolchain, libraries and a book toolchain. Each keeps its own version and its own tag. As of v0.63.0, 19 October 2026.

In development · v0.63

Lictor

Moderation for live broadcasters, at 0.2.0: live chat, moderation actions, user history and team coordination in one place, written in Praxis on WebGlue and built in the order a user meets it. It drives the roadmap’s Phase 6, and it has a section of its own.

WebGlue

The web framework Lictor is built on, at 0.8.0, a set of packages from the router and the session to sockets and pub/sub. What a Lictor journey needs from it is built in WebGlue during that journey. It has a section of its own.

The toolchain

Praxis — the compiler, the runtime and the standard library — shares one version, v0.63.0. The tools around it are products of their own:

ProductVersionWhat it is
prx0.43.0The project tool: the project model, the build, dependencies and plugins
prepl0.22.0The prompt: a project loaded, and a place to stand in it
prx_mcp0.47.0The MCP server, with the idiom corpus
prx_release0.20.0prx release: an OTP release, assembled and packaged
touchstone_prx0.19.0prx test: a project’s tests, found and run
other pluginslint, check, doc, docset, bundle, observer, fortune, license, shell completion, the language server and the debug adapter
editorsA tree-sitter grammar and a VS Code extension over prx __lsp

Libraries

Libraries written in Praxis, each meant to be useful outside it. A port replaces the Elixir original inside this repository and carries its version line on; the original stays where it is.

LibraryWhat it is
ichor, ichor_runtimePorts of Ichor and Ichor Runtime: parsers generated from an Aether grammar
cooper, cooper_prxA port of Cooper: CASC read, validated and handed to a Praxis program
dextrinA port of Dextrin: DXN read and written, text and binary
logger_logfmtA port of logger_logfmt, at 2.0.0 like the original
shibboleth0.1.0 — a password, kept as something that can check it and cannot give it back
posthorn0.1.0 — mail as data, delivered through a backend, and a development mailbox that sends nothing
assize0.1.0 — conformance suites: every implementation of a specification tried on the same cases, every disagreement named
koine, *_conformanceThe suite Praxis and Logos are both run against, and the suites that hold every implementation of CASC, DXN and Ichor to the same cases
touchstoneThe test framework: deftest, the assertions and the generators
proviso, edictA command line, and nested commands with their help, parsed against what a program says it takes
stetA formatter over a token stream — what prx fmt runs
gloss, codexA documentation site, and a Dash docset, out of what the compiler wrote
rubric, quire, stencilMarkup as plain data, markup text read into it, and templates compiled into functions
plexus, caliper, sondeA directed graph and its renderings; benchmarks; telemetry

Octavo

The book toolchain, in Praxis, so that a book is published with nothing installed but the BEAM: fount reads and measures a typeface, galley composes text into lines and pages, platen writes a PDF, and octavo reads AsciiDoc and writes a book. fount and platen are written and released at 0.1.0; galley and octavo are planned, and finishing them is a phase of its own, before any book is continued.

Versions and tags

  • Praxis is tagged vX.Y.Z; every other product carries its name in front, as in lictor-v0.2.0 or prx-v0.43.0.
  • Every milestone is a release of every product it changed: v0.63.0 came with, among others, Lictor 0.2.0, WebGlue 0.8.0, prx 0.43.0, shibboleth 0.1.0 and posthorn 0.1.0.
  • A tag says a product was released inside the repository. Nothing is published to a registry yet; that is phase 8, and the split into repositories of their own is phase 12.
  • Everything is Apache-2.0.