+32
-32
Cargo.lock
+32
-32
Cargo.lock
······
+1
-1
Cargo.toml
+1
-1
Cargo.toml
+1
-1
link_aggregator/Cargo.toml
constellation/Cargo.toml
+1
-1
link_aggregator/Cargo.toml
constellation/Cargo.toml
+1
-1
link_aggregator/readme.md
constellation/readme.md
+1
-1
link_aggregator/readme.md
constellation/readme.md
link_aggregator/src/consumer/jetstream.rs
constellation/src/consumer/jetstream.rs
link_aggregator/src/consumer/jetstream.rs
constellation/src/consumer/jetstream.rs
link_aggregator/src/consumer/jsonl_file.rs
constellation/src/consumer/jsonl_file.rs
link_aggregator/src/consumer/jsonl_file.rs
constellation/src/consumer/jsonl_file.rs
+1
-1
link_aggregator/src/consumer/mod.rs
constellation/src/consumer/mod.rs
+1
-1
link_aggregator/src/consumer/mod.rs
constellation/src/consumer/mod.rs
···
link_aggregator/src/lib.rs
constellation/src/lib.rs
link_aggregator/src/lib.rs
constellation/src/lib.rs
link_aggregator/src/main.rs
constellation/src/main.rs
link_aggregator/src/main.rs
constellation/src/main.rs
link_aggregator/src/server/acceptable.rs
constellation/src/server/acceptable.rs
link_aggregator/src/server/acceptable.rs
constellation/src/server/acceptable.rs
link_aggregator/src/server/filters.rs
constellation/src/server/filters.rs
link_aggregator/src/server/filters.rs
constellation/src/server/filters.rs
+1
-1
link_aggregator/src/server/mod.rs
constellation/src/server/mod.rs
+1
-1
link_aggregator/src/server/mod.rs
constellation/src/server/mod.rs
+1
-1
link_aggregator/src/storage/mem_store.rs
constellation/src/storage/mem_store.rs
+1
-1
link_aggregator/src/storage/mem_store.rs
constellation/src/storage/mem_store.rs
···
+1
-1
link_aggregator/src/storage/mod.rs
constellation/src/storage/mod.rs
+1
-1
link_aggregator/src/storage/mod.rs
constellation/src/storage/mod.rs
+1
-1
link_aggregator/src/storage/rocks_store.rs
constellation/src/storage/rocks_store.rs
+1
-1
link_aggregator/src/storage/rocks_store.rs
constellation/src/storage/rocks_store.rs
···
+1
-1
link_aggregator/templates/base.html.j2
constellation/templates/base.html.j2
+1
-1
link_aggregator/templates/base.html.j2
constellation/templates/base.html.j2
···-<h1><a href="/">This</a> is an <a href="https://github.com/at-ucosm/links/tree/main/link_aggregator">atproto link aggregator</a> server from <a href="https://github.com/at-ucosm">µcosm</a>!</h1>+<h1><a href="/">This</a> is an <a href="https://github.com/at-ucosm/links/tree/main/constellation">atproto link aggregator</a> server from <a href="https://github.com/at-ucosm">µcosm</a>!</h1>
link_aggregator/templates/hello.html.j2
constellation/templates/hello.html.j2
link_aggregator/templates/hello.html.j2
constellation/templates/hello.html.j2
link_aggregator/templates/links-all-count.html.j2
constellation/templates/links-all-count.html.j2
link_aggregator/templates/links-all-count.html.j2
constellation/templates/links-all-count.html.j2
link_aggregator/templates/links-count.html.j2
constellation/templates/links-count.html.j2
link_aggregator/templates/links-count.html.j2
constellation/templates/links-count.html.j2
link_aggregator/templates/links.html.j2
constellation/templates/links.html.j2
link_aggregator/templates/links.html.j2
constellation/templates/links.html.j2
link_aggregator/templates/try-it-macros.html.j2
constellation/templates/try-it-macros.html.j2
link_aggregator/templates/try-it-macros.html.j2
constellation/templates/try-it-macros.html.j2
link_aggregator/zstd/dictionary
constellation/zstd/dictionary
link_aggregator/zstd/dictionary
constellation/zstd/dictionary
+43
-6
readme.md
+43
-6
readme.md
···+- Self hostable: handles the full write throughput of the global atproto firehose on a raspberry pi 4b + single SSD+- Storage efficient: less than 2GB/day disk consumption indexing all references in all lexicons and all non-atproto URLs+All social interactions in atproto tend to be represented by links (or references) between PDS records. This index can answer questions like "how many likes does a bsky post have", "who follows an account", "what are all the comments on a [frontpage](https://frontpage.fyi/) post", and more.+- **status**: works! api is unstable and likely to change, and no known instances have a full network backfill yet.+_note: the public instance currently runs on a little raspberry pi in my house, feel free to use it! it comes with only with best-effort uptime, no commitment to not breaking the api for now, and possible rate-limiting. if you want to be nice you can put your project name and bsky username (or email) in your user-agent header for api requests._-optimistically extract links from arbitrary atproto records, optionally resolving canonical representations and possibly validating StrongRefs.+using the same "link source" concept as [constellation](./tree/main/microcosm), offer webhook notifications for new references created to records+A rust crate (not published on crates.io yet) for optimistically parsing links out of arbitrary atproto PDS records, and potentially canonicalizing themas far as i can tell, atproto lexicons today don't follow much of a convention for referencing across documents: sometimes it's a StrongRef, sometimes it's a DID, sometimes it's a bare at-uri. lexicon authors choose any old link-sounding key name for the key in their document.