Crate notedealer
source · [−]Expand description
This is a binary crate which hosts an HTTP server which implements a part of the ActivityPub protocol and serves a small Javascript-based ActivityPub client for testing.
CAUTION: This crate is not ready for use on the public internet in any capacity: there’s no authorization or authentication implemented, and no anti-spam measures.
Modules
This module contains types and functions for handling ActivityPub and
Activity Streams 2.0 objects. Everything here centers around
Object, so I
would suggest starting there.args 🔒
Command line argument and environment variable types and parsing.
database 🔒
Interface to access the database.
frontend 🔒
Macros for creating static HTTP responders of varying media types from the
frontend directory. Used to serve the testing frontend, which is all
static files.http_api 🔒
HTTP API responders for ActivityPub objects, plus some endpoints specific to
this server (like a registration endpoint,
users::register).remote 🔒
Interface to fetch remote objects and send local objects to remote servers.
Snowflake ID generation logic.
Functions
Entry point for the program. Reads cli and env args, sets up logging,
initializes the Database, and starts up the Actix HTTP server and inbox
delivery loop (activitypub::inbox_queue). The HTTP server serves requests
using the responders in http_api (most of the API) and frontend (see the
files in the “frontend” folder at the root of the repository for the
specific files served).