Constellation, Spacedust, Slingshot, UFOs: atproto crates and services for microcosm

more readme stuff

jestream lib, badges, intro with links etc

Changed files
+48 -20
+48 -20
readme.md
··· 1 microcosm 2 ========= 3 4 - This repo contains APIs and libraries for [atproto](https://atproto.com/) services from [microcosm](https://microcosm.blue): 5 6 7 ๐ŸŒŒ [Constellation](./constellation/) ··· 9 10 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. 11 12 - - source: [./constellation/](./constellation/) 13 - - [public instance + API docs](https://constellation.microcosm.blue/) 14 - - status: used in production. APIs will change but backwards compatibility will be maintained as long as needed. 15 16 17 ๐ŸŽ‡ [Spacedust](./spacedust/) ··· 19 20 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](github.com/bluesky-social/jetstream). 21 22 - - source: [./spacedust/](./spacedust/) 23 - - [public instance + API docs](https://spacedust.microcosm.blue/) 24 - - status: v0: the basics work and the APIs are in place! missing cursor replay, forward link storage, and delete event link hydration. 25 26 - Demos: 27 28 - [Spacedust notifications](https://notifications.microcosm.blue/): web push notifications for _every_ atproto app 29 - [Zero-Bluesky real-time interaction-updating post embed](https://bsky.bad-example.com/zero-bluesky-realtime-embed/) ··· 34 35 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. 36 37 - - source: [./slingshot/](./slingshot/) 38 - - [public instance + API docs](https://slingshot.microcosm.blue/) 39 - - status: v0: most XRPC APIs are working. cache storage is being reworked. 40 41 42 ๐Ÿ›ธ [UFOs API](./ufos) ··· 44 45 Timeseries stats and sample records for every [collection](https://atproto.com/guides/glossary#collection) ever seen in the atproto firehose. Unique users are counted in hyperloglog sketches enabling arbitrary cardinality aggregation across time buckets and/or NSIDs. 46 47 - - source: [./ufos/](./ufos/) 48 - - [public instance + API docs](https://ufos-api.microcosm.blue/) 49 - - 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. 50 51 - See also: [UFOs atproto explorer](https://ufos.microcosm.blue/) built on UFOs API. ([source](github.com/at-microcosm/spacedust-utils)) 52 53 54 ๐Ÿ’ซ [Links](./links) ··· 56 57 Rust library for parsing and extracting links (at-uris, DIDs, and URLs) from atproto records. 58 59 - - source: [./links/](./links/) 60 - - status: not yet published to crates.io; needs some rework 61 62 63 ๐Ÿ”ญ Deprecated: [Who am I](./who-am-i) ··· 65 66 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. 67 68 - - source: [./who-am-i/](./who-am-i/) 69 - - status: ready for retirement. 70 71 - Still in use for the Spacedust Notifications demo, but that will hopefully be migrated to use atproto oauth directly instead.
··· 1 microcosm 2 ========= 3 4 + HTTP APIs and rust libraries for [atproto](https://atproto.com/) services from [microcosm](https://microcosm.blue). 5 + 6 + [![@microcosm.blue: bluesky](https://img.shields.io/badge/@microcosm.blue-bluesky-blue)](https://bsky.app/profile/microcosm.blue) 7 + [![microcosm discord: join](https://img.shields.io/badge/microcosm_discord-join-purple)](https://discord.gg/tcDfe4PGVB) 8 + [![github sponsors: support](https://img.shields.io/badge/github_sponsors-support-pink)](https://github.com/sponsors/uniphil/) 9 + [![ko-fi: support](https://img.shields.io/badge/ko--fi-support-pink)](https://ko-fi.com/bad_example) 10 + 11 + Welcome! 12 + 13 + The documentation for microcosm services is under active development. If you like reading API docs, you'll probably hit the ground running! 14 + 15 + Tutorials, how-to guides, and client SDK libraries are all in the works for gentler on-ramps, but are not quite ready yet. But don't let that stop you! Hop in the [microcosm discord](https://img.shields.io/badge/microcosm_discord-join-purple), or post questions and tag [@bad-example.com](https://bsky.app/profile/bad-example.com) on Bluesky if you get stuck anywhere! 16 + 17 + This repository's primary home is moving to tangled: [@microcosm.blue/microcosm-rs](https://tangled.sh/@microcosm.blue/microcosm-rs). It will continue to be mirrored on [github](https://github.com/at-microcosm/microcosm-rs) for the forseeable future, and it's fine to open issues or pulls in either place! 18 19 20 ๐ŸŒŒ [Constellation](./constellation/) ··· 22 23 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. 24 25 + - Source: [./constellation/](./constellation/) 26 + - [Public instance/API docs](https://constellation.microcosm.blue/) 27 + - Status: used in production. APIs will change but backwards compatibility will be maintained as long as needed. 28 29 30 ๐ŸŽ‡ [Spacedust](./spacedust/) ··· 32 33 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](github.com/bluesky-social/jetstream). 34 35 + - Source: [./spacedust/](./spacedust/) 36 + - [Public instance/API docs](https://spacedust.microcosm.blue/) 37 + - Status: v0: the basics work and the APIs are in place! missing cursor replay, forward link storage, and delete event link hydration. 38 39 + ### Demos: 40 41 - [Spacedust notifications](https://notifications.microcosm.blue/): web push notifications for _every_ atproto app 42 - [Zero-Bluesky real-time interaction-updating post embed](https://bsky.bad-example.com/zero-bluesky-realtime-embed/) ··· 47 48 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. 49 50 + - Source: [./slingshot/](./slingshot/) 51 + - [Public instance/API docs](https://slingshot.microcosm.blue/) 52 + - Status: v0: most XRPC APIs are working. cache storage is being reworked. 53 54 55 ๐Ÿ›ธ [UFOs API](./ufos) ··· 57 58 Timeseries stats and sample records for every [collection](https://atproto.com/guides/glossary#collection) ever seen in the atproto firehose. Unique users are counted in hyperloglog sketches enabling arbitrary cardinality aggregation across time buckets and/or NSIDs. 59 60 + - Source: [./ufos/](./ufos/) 61 + - [Public instance/API docs](https://ufos-api.microcosm.blue/) 62 + - 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. 63 64 + > [!info] 65 + > See also: [UFOs atproto explorer](https://ufos.microcosm.blue/) built on UFOs API. ([source](github.com/at-microcosm/spacedust-utils)) 66 67 68 ๐Ÿ’ซ [Links](./links) ··· 70 71 Rust library for parsing and extracting links (at-uris, DIDs, and URLs) from atproto records. 72 73 + - Source: [./links/](./links/) 74 + - Status: not yet published to crates.io; needs some rework 75 + 76 + 77 + ๐Ÿ›ฉ๏ธ [Jetstream](./jetstream) 78 + --------------------------- 79 + 80 + A low-overhead jetstream client with cursor handling and automatic reconnect. 81 + 82 + - Source: [./links/](./links/) 83 + - Status: used in multiple apps in production, but not yet published to crates.io; some rework planned 84 + 85 + > [!info] 86 + > See also: [Rocketman](https://github.com/teal-fm/cadet/tree/main/rocketman), another excellent rust jetstream client which shares some lineage and _is_ published on crates.io. 87 + 88 89 90 ๐Ÿ”ญ Deprecated: [Who am I](./who-am-i) ··· 92 93 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. 94 95 + - Source: [./who-am-i/](./who-am-i/) 96 + - Status: ready for retirement. 97 98 + > [!warning] 99 + > Still in use for the Spacedust Notifications demo, but that will hopefully be migrated to use atproto oauth directly instead.