GithubHelp home page GithubHelp logo

pwfoo / apcore Goto Github PK

View Code? Open in Web Editor NEW

This project forked from go-fed/apcore

0.0 2.0 0.0 70 KB

Golang ActivityPub Server Framework

License: GNU Affero General Public License v3.0

Go 100.00%

apcore's Introduction

apcore

Under Construction

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 partially 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

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.