1 unstable release
0.1.0 | Dec 19, 2019 |
---|
#2172 in Encoding
115KB
2.5K
SLoC
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.
Dependencies
~4.5MB
~115K SLoC