# Red Dwarf Server Red Dwarf but as a Go AppView server instead of a React TypeScript SPA you can use it right now by using `did:web:server.reddwarf.app` with any bluesky client that supports custom appviews (like for example [witchsky](https://witchsky.app/)) still very early in development implemented routes: - `app.bsky.actor.getProfiles` - `app.bsky.actor.getProfile` - `app.bsky.notification.listNotifications` (placeholder) - `app.bsky.labeler.getServices` - `app.bsky.feed.getFeedGenerators` - `app.bsky.feed.getPosts` (post rendering is incomplete) - `app.bsky.feed.getFeed` (post rendering is incomplete) - `app.bsky.unspecced.getConfig` (placeholder) - `app.bsky.unspecced.getPostThreadV2` (mostly working! doesnt use prefered sort, not performant yet) > [!NOTE] > uh im not very confident with the current directory structure, so files and folders might move around ## Runnables run all of these using `go run .` inside the respective directories ### `/cmd/appview` the main entry point, the actual appview itself. the api server that implements app.bsky.* XRPC methods ### `/cmd/backstream` experimental backfiller that kinda (but not really) conforms to the jetstream event shape. designed to be ingested by consumers expecting jetstream ### `/cmd/aturilist` experimental listRecords replacement. is not backfilled. uses the official jetstream go client, which means it suffers from this [bug](https://github.com/bluesky-social/jetstream/pull/45) ## Packages ### `/auth` taken from [go-bsky-feed-generator](https://github.com/jazware/go-bsky-feed-generator) but modified a bit. handles all of the auth, modified to have a more lenient version to make `getFeed` work ### `/microcosm/*` microcosm api clients, implements constellation slingshot and spacedust slingshot's api client is compatible with `github.com/bluesky-social/indigo/*` stuff, like `agnostic.RepoGetRecord` and `util.LexClient` ### `/shims/*` most of Red Dwarf Server logic lives here. pulls data from upstream services like microcosm constellation and slingshot, transforms it, and spits out bsky api -like responses using the published app.bsky.* codegen from `github.com/bluesky-social/indigo/api/bsky` ### `/sticket` unused leftover sorry ### `/store` unused leftover sorry ## todo - clean up /cmd/appview/main.go , its a mess - appview-side query caches - notification service - bookmarks service - create aturilist service - make backstream usable - create jetrelay service