/bayou

a wip activitypub implimentation written in rust

Primary LanguageRustGNU Affero General Public License v3.0AGPL-3.0

Bayou

this project is a rewrite of my older project https://github.com/uberfig/activity_playground

this project has taken a turn from its original goals and is primarily implimenting the versia protocol with basic activitypub support.

The lack of documentation on the extensions to activitypub by mastodon and various projects makes it quite the pain to set up things like signing

reasons implimenting activitypub sucks

  • we just have a little blog post to go off for signing unless we want to read the source code for mastodon
  • the blog post is incorrect as mastodon requires the message digest be signed
  • no one mentons anywhere that the algorithm needs to be inferred from the silly @context instead of making the sane design decision to just list the algorithm used beside the pem (fun fact I just found out that mastodon appearently uses spki for keys)
  • infinitely nested objects is valid within activitypub
  • when you unfollow someone your instance sends an undo. when you follow them again it undoes the undo, you can see how silly this is
  • follow requests need to have an id that can be accessed like comon this is silly

ok mastodon actually documented some stuff yayy

delicious finally some documentation https://swicg.github.io/activitypub-http-signature/

alr we're following along with https://github.com/astro/sigh and we're going back to openssl

down the road there may be support for other databases, but for the time being postgres is the main focus. since this project is still very very under development there will be frequent changes the database without migrations until we have the first alpha release.

for setting up your environment to run, check environment setup

all contributions welcome :3