1
0
Fork
You've already forked apcore
0
No description
  • Go 100%
Find a file
2021年04月13日 10:23:57 +02:00
ap Better handling of paths and contexts 2020年12月21日 18:13:00 +01:00
app Update framework to better manage Send, scheme, & host 2020年12月26日 11:38:38 +01:00
example Update framework to better manage Send, scheme, & host 2020年12月26日 11:38:38 +01:00
framework Add socialtap smtp config params 2021年04月08日 09:50:13 +02:00
models Fix nil pointer in serialization 2021年04月13日 10:23:57 +02:00
paths go fmt and go mod tidy 2020年12月21日 22:44:01 +01:00
services Fix Crypto.Valid accessing a nil pointer 2021年04月09日 14:05:47 +02:00
util Better handling of paths and contexts 2020年12月21日 18:13:00 +01:00
.travis.yml Update travis to go version 1.15 2020年12月22日 21:05:34 +01:00
actions.go Prompt for server profile information during db-init 2020年12月08日 18:34:07 +01:00
cmdline.go Add another line for Clarke 2020年12月11日 20:00:23 +01:00
dep_inj.go Update framework to better manage Send, scheme, & host 2020年12月26日 11:38:38 +01:00
go.mod Sanitize XML content and summary of ActivityStreams 2021年04月13日 10:11:33 +02:00
go.sum Sanitize XML content and summary of ActivityStreams 2021年04月13日 10:11:33 +02:00
LICENSE License under the GNU Affero General Public License 2019年05月29日 23:31:29 +02:00
pkg.go Initial NodeInfo/NodeInfo2 impls 2020年11月26日 17:51:17 +01:00
README.md Add badge for the Matrix chat room 2020年12月23日 12:21:47 +01:00
run.go Rename debug to dev flag; print warning when enabled 2020年11月25日 18:16:40 +01:00

apcore

Server framework for quickly building ActivityPub applications

Under Construction

Build Status Go Reference Go Report Card License Chat OpenCollective

go get github.com/go-fed/apcore

apcore is a powerful single server ActivityPub framework for performant Fediverse applications.

It is built on top of the go-fed/activity suite of libraries, which means it can readily allow application developers to iterate and leverage new ActivityStreams or RDF vocabularies.

Features

This list is a work in progress.

  • Uses go-fed/activity
    • ActivityPub S2S (Server-to-Server) Protocol supported
    • ActivityPub C2S (Client-to-Server) Protocol supported
    • Both S2S and C2S can be used at the same time
    • Comes with the Core & Extended ActivityStreams types
    • Readily expands to support new ActivityStreams types and/or RDF vocabularies
  • Federation & Moderation Policy System
    • Administrators and/or users can create policies to customize their federation experience
    • Auditable results of applying policies on incoming federated data
  • Supports common out-of-the-box command-line commands for:
    • Initializing a database with the appropriate apcore tables as well as your application-specific tables
    • Initializing a new administrator account
    • Creating a server configuration file in a guided flow
    • Comprehensive help command
    • Guided command line flow for administrators for all the above tasks, featuring Clarke the Cow
  • Configuration file support
    • Add your configuration options to the existing apcore configuration options
    • Administrators can customize their ActivityPub and your app's experience
  • Database support
    • Currently, only PostgreSQL supported
    • Others can be added with a some SQL work, in the future
    • No ORM overhead
    • Your custom application has access to apcore tables, and more
  • OAuth2 support
    • Easy API to build authorization grant and validation flows
    • Handles server side state for you
  • Webfinger & Host-Meta support

How To Use This Framework

This guide is a work in progress.

Building an application is not an easy thing to do, but following these steps reduces the cost of building a federated application:

  1. Implement the apcore.Application interface.
  2. Call apcore.Run with your implementation in main.

The most work is in the first step, as your application logic is able to live as functional closures as the Application is used within the apcore framework. See the documentation on the Application interface for specific details.