1 KiB
apb
traits and types for implementing ActivityPub
apb
implements all ActivityStreams types as traits, so that implementing structs don't need to hold all possible fields, but only implement getters for relevant ones
apb
also provides a Node
enum, which can be Empty, Link, Object or Array
if the unstructured
feature is enabled, all traits are implemented for serde_json::Value
, so that it's possible to manipulate free-form json maps as valid AP objects
if the orm
feature is enabled, enum types are also database-friendly with sea-orm
if the fetch
feature is enabled (together with unstructured
), Node
s expose a async fn fetch(&mut self) -> reqwest::Result<&mut Self>
to dereference remote nodes
why
upub uses these types to implement its federation, but I wanted to modularize apb types. this crate is still work in progress and favors upub's needs, get in touch if you'd like to help or tune apb to your project!