Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm
Rust 93.2%
Jinja 3.5%
Handlebars 2.0%
HTML 0.8%
CSS 0.5%
Makefile 0.1%
Shell 0.1%
Other 0.1%
510 6 0

Clone this repository

https://tangled.org/nekomimi.pet/microcosm-rs
git@knot.gaze.systems:nekomimi.pet/microcosm-rs

For self-hosted knots, clone URLs may differ based on your setup.

readme.md

microcosm#

This repo contains APIs and libraries for atproto services from microcosm:

🌌 Constellation#

A global atproto interactions backlink index as a simple JSON API. Works with every lexicon, runs on a raspberry pi, consumes less than 2GiB of disk per day. Handles record deletion, account de/re-activation, and account deletion, ensuring accurate link counts while respecting users' data choices.

🎇 Spacedust#

A global atproto interactions firehose. Extracts all at-uris, DIDs, and URLs from every lexicon in the firehose, and exposes them over a websocket modelled after jetstream.

Demos:

🛰️ Slingshot#

A fast, eager, production-grade edge cache for atproto records and identities. Pre-caches all records from the firehose and maintains a longer-term cache of requested records on disk.

🛸 UFOs API#

Timeseries stats and sample records for every collection ever seen in the atproto firehose. Unique users are counted in hyperloglog sketches enabling arbitrary cardinality aggregation across time buckets and/or NSIDs.

  • source: ./ufos/
  • public instance + API docs
  • status: Used in production. It has APIs and they work! Needs improvement on indexing; needs more indexes and some more APIs to the data exposed.

See also: UFOs atproto explorer built on UFOs API. (source)

Rust library for parsing and extracting links (at-uris, DIDs, and URLs) from atproto records.

  • source: ./links/
  • status: not yet published to crates.io; needs some rework

🔭 Deprecated: Who am I#

An identity bridge for microcosm demos, that kinda worked. Fixing its problems is about equivalent to reinventing a lot of OIDC, so it's being retired.

Still in use for the Spacedust Notifications demo, but that will hopefully be migrated to use atproto oauth directly instead.