bsky-experiments

module
v0.0.0-...-d2fb7d2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2024 License: MIT

README

BSky Experiments

This repo has contains some fun Go experiments interacting with BlueSky via the AT Protocol.

The Makefile contains some useful targets for building and running the experiments.

Check out the contents of the cmd folder for some Go binaries that are interesting.

Don't expect any help running these, they change often and are not built to work in every environment and require external infrastructure to operate properly (Postgres, Redis, ScyllaDB, etc.)

Some of the experiments include:

  • consumer - A firehose consumer and backfiller that indexes the contents of the ATProto firehose for search and filtering by other services.
  • feedgen-go - A feed generator backend that serves many different feeds from the datastores populated by the consumer and other services.
  • graphd - An in-memory graph database that tracks follows between users to make lookups and intersections faster in my other services.
  • indexer - A worker that grabs posts from the DB created by the consumer and processes them for language detection, sentiment analysis, and object detection of images by sending them to various python services from the python folder.
  • jazbot - A bot that interacts with users and sources data from the DBs populated by other services.
  • ts-layout - A TypeScript service that handles ForceAtlas2 layouts of threads for visualization in my Thread Visualizer
  • object-detection - A Python service that downloads images and detects objects in them.
  • sentiment - A Python service that runs sentiment analysis on the textual content of posts.
  • plc - A shallow mirror of plc.directory that contains the "latest" values for DID -> Handle resolution.
  • search - A catch-all Go HTTP API that tracks statistics of AT Proto and has some useful endpoints that the other services make use of.

Directories

Path Synopsis
cmd
plc
examples
pkg
feed-generator
Package feedgenerator describes the FeedGenerator type, which is responsible for generating feeds for a given DID.
Package feedgenerator describes the FeedGenerator type, which is responsible for generating feeds for a given DID.
plc
xrpc
Package xrpc provides a simple wrapper around the xrpc client with some helper functions for authentication
Package xrpc provides a simple wrapper around the xrpc client with some helper functions for authentication

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL