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 🔒
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).