teromene / activityrust

ActivityRust is an implementation of the ActivityStream specifications

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ActivityRust

What is ActivityRust ?

ActivityRust is a crate that allows a user to manage the structures used by common implementations of the ActivityPub protocol. In order to do so, it tries to be compilant with:

  • The ActivityStream Vocabulary, as defined here
  • The ActivityPub extensions, as defined here
  • Parts of the W3ID Security extension, as defined here
  • The WebFinger schema ActivityRust allows creation and edition of these structures, but can also serialize and deserialize them to json.

How to use ActivityRust ?

Creating an ActivityStream entity

extern crate activityrust;
// Import the required traits
use activityrust::traits::properties::*;

use activityrust::entities::actortypes::ActivityStreamPerson;
use url::Url;

fn main() {

  let mut activity = ActivityStreamPerson::create();
  let activity_url = Url::parse("http://test.test").unwrap();
  activity.set_id(activity_url);

}

As ActivityStream, ActivityRust supports setting null values for properties. In practice, it means that you can do this:

  activity.set_summary::<String, Option<String>>(None);

Deserializing an ActivityStream entity

ActivityRust supports the serde module, and all entities can be deserialized to their proper types and serialized to JSON.

About

ActivityRust is an implementation of the ActivityStream specifications


Languages

Language:Rust 100.0%