Expand description
§apb
traits and types for implementing ActivityPub
The main type this crate exposes is the Node, which can be:
- Node::Empty: not present in object
- Node::Link: contains just link to object
- Node::Object: contains embedded object
- Node::Array: contains array of embedded objects
Nodes contain AP objects, which implement one or more traits (such as Object or Actor)
§features
unstructured
: all traits are implemented for [serde_json::Value], so that it’s possible to manipulate free-form json maps as valid AP objectsorm
: enum types are also database-friendly with sea-ormfetch
: Node exposes [Node::fetch] to dereference remote nodes
§structure
- Base | BaseMut | BaseType
- BaseType::Link | Link | LinkMut | LinkType
- BaseType::Object | Object | ObjectMut | ObjectType
- ObjectType::Activity | Activity | ActivityMut | ActivityType
- ActivityType::Accept | Accept | AcceptMut | AcceptType
- ActivityType::Add
- ActivityType::Announce
- ActivityType::Create
- ActivityType::Delete
- ActivityType::Dislike
- ActivityType::Flag
- ActivityType::Follow
- ActivityType::IntransitiveActivity | IntransitiveActivity | IntransitiveActivityMut | IntransitiveActivityType
- ActivityType::Ignore | Ignore | IgnoreMut | IgnoreType
- ActivityType::Join
- ActivityType::Leave
- ActivityType::Like
- ActivityType::Listen
- ActivityType::Move
- ActivityType::Offer | Offer | OfferMut | OfferType
- ActivityType::Read
- ActivityType::Reject | Reject | RejectMut | RejectType
- ActivityType::Remove
- ActivityType::Undo
- ActivityType::Update
- ActivityType::View
- ObjectType::Actor | Actor | ActorMut | ActorType *
- ObjectType::Article
- ObjectType::Collection | Collection | CollectionMut | CollectionType
- ObjectType::Document | Document | DocumentMut | DocumentType
- ObjectType::Event
- ObjectType::Note
- ObjectType::Object
- ObjectType::Place
- ObjectType::Profile
- ObjectType::Relationship
- ObjectType::Tombstone
- ObjectType::Activity | Activity | ActivityMut | ActivityType
- PublicKey | PublicKeyMut **
*: Actor
is technically just an object, not really a “subtype”
**: PublicKey
is introduced in ActivityPub, it’s not part of ActivityStream
Enums§
- ActivityPub object node, representing either nothing, something, a link to something or multiple things