FEDERATION.md
bovine is not a Fediverse application, but a set of libraries meant to build Fediverse applications. This means that the format of the information presented here is slightly different than suggested in FEP-67ff: FEDERATION.md. Instead of listing which protocols are implemented, we will discuss which parts of bovine can be used to implement certain protocols.
Supported federation protocols and standards
-
ActivityPub is implemented to interoperate with the rest of the Fediverse. Details may thus differ from the exact wording of the specification. bovine_process implements what the sections on side effects cover (Section 6 and 7). The HTTP endpoints are contained in build_endpoints_blueprint. Objects are returned with retrieve_from_store. Collections are returned with retrieve_collection_from_store Data is store in bovine_store. Actors are stored as BovineActor, objects are stored as StoredJsonObject and collections using CollectionItem.
-
ActivityStreams describes objects in the Fediverse. The package activitystreams contains methods to create these objects. The package parse to parse them. As bovine itself does not really create or display objects, these packages are rather bare bones.
-
Http Signatures are supported through build_validate_http_signature and SignedHttpClient.
Supported FEPs
-
FEP-e232: Object Links can be created with Link.for_object
-
FEP-8b32: Object Integrity Proofs can be verified with CryptographicIdentifier and created with CryptographicSecret
-
FEP-4adb: Dereferencing identifiers with webfinger is supported, just add an appropriate identifier to BovineActorKeyPair and get_account_url_for_identity.
-
FEP-521a: Representing actor’s public keys in progress already available CryptographicIdentifier.from_multikey.
-
FEP-07d7: A Custom URL Scheme and Web-Based Protocol Handlers for Linking to ActivityPub Resources type links are displayed on the fallback pages from fallback_handler.