infra stuff in gleam
gleam atproto lexicon codegen oauth
Gleam 98%
TypeScript 1%
<1%
JavaScript <1%
Makefile <1%

README.md

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.