gleam-atproto#
Gleam packages for building on atproto, extracted from at-record. All are alpha: pre-1.0, evolving alongside at-record, breaking changes between 0.x releases.
| Package | Hex | What it does |
|---|---|---|
atproto_core |
hex.pm | Shared sans-io core: XRPC error vocabulary and the OAuth effect kernel. |
atproto_client |
hex.pm | Transport-agnostic client: XRPC, identity, OAuth, blobs, repo CRUD. Dual-target. |
atproto_browser |
hex.pm | Browser-native OAuth + XRPC: WebCrypto DPoP/PKCE, async fetch. javascript-only. |
atproto_lexicon |
hex.pm | Bidirectional lexicon AST, source resolver, pinned cache with lockfile, semantic diff. |
atproto_codegen |
hex.pm | Generates Gleam types, JSON codecs, and a typed XRPC client from lexicons. |
atproto_mlf |
hex.pm | Parse and print mlf against the atproto_lexicon AST. |
atproto_sdl |
hex.pm | Prisma/GraphQL-inspired lexicon schema language over the same AST. |
atproto_openapi |
hex.pm | One-way OpenAPI 3.1.0 emitter from lexicons. |
The lexicon toolchain (the json, mlf, and sdl front-ends and the codegen
and openapi back-ends) meets at the atproto_lexicon AST. Each package's
README and hexdocs carry the details.
Versioning & releases#
Semver, per package, versioned independently. While pre-1.0: breaking changes bump minor, everything else bumps patch.
Every user-facing change lands under ## [Unreleased] in that package's
CHANGELOG.md. Releasing moves it under a version heading, bumps
gleam.toml, and pushes a <package>-v<version> tag (e.g.
atproto_client-v0.2.0); CI verifies the tag matches gleam.toml and
publishes to Hex.