FederationRepository (34 methods) → 4 focused traits:
ActivityRepository (2) — idempotency tracking
FollowRepository (18) — follower/following graph + migration
ActorRepository (6) — keypairs, remote actor cache, announce tracking
BlocklistRepository (8) — domain + actor blocklists
ApObjectHandler (10 methods) → 2 traits:
ApContentReader (3) — get_local_objects_for_user/page, count_local_posts
ApObjectHandler (9) — all inbox callbacks (on_create, on_mention, etc.)
Builder changes from positional args to named setters:
ActivityPubService::builder(base_url)
.activity_repo(arc)
.follow_repo(arc)
.actor_repo(arc)
.blocklist_repo(arc)
.user_repo(arc)
.content_reader(arc)
.object_handler(arc)
.build()
No behaviour changes.
25 lines
917 B
TOML
25 lines
917 B
TOML
[package]
|
|
name = "k-ap"
|
|
version = "0.3.0"
|
|
edition = "2024"
|
|
description = "Generic ActivityPub protocol layer"
|
|
license = "MIT"
|
|
publish = ["gitea"]
|
|
|
|
[dependencies]
|
|
tokio = { version = "1.0", features = ["macros", "net", "rt", "rt-multi-thread", "sync", "time"] }
|
|
futures = "0.3"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
serde_json = "1.0"
|
|
uuid = { version = "1.0", features = ["v4", "v5", "serde"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
anyhow = "1.0"
|
|
tracing = "0.1"
|
|
async-trait = "0.1"
|
|
axum = { version = "0.8", features = ["macros"] }
|
|
reqwest = { version = "0.13", features = ["json"] }
|
|
url = { version = "2", features = ["serde"] }
|
|
enum_delegate = "0.2"
|
|
activitypub_federation = "0.7.0-beta.11"
|
|
zeroize = { version = "1", features = ["derive"] }
|