{"id":15058770,"url":"https://github.com/go-fed/apcore","last_synced_at":"2025-04-10T05:11:52.404Z","repository":{"id":48384287,"uuid":"196642594","full_name":"go-fed/apcore","owner":"go-fed","description":"Golang ActivityPub Server Framework","archived":false,"fork":false,"pushed_at":"2023-03-07T03:50:41.000Z","size":15051,"stargazers_count":105,"open_issues_count":23,"forks_count":10,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-10-29T18:42:28.486Z","etag":null,"topics":["activitypub","activitystreams","activitystreams-vocabulary","federated","framework","golang","social"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/go-fed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-07-12T20:35:15.000Z","updated_at":"2024-10-04T11:24:31.000Z","dependencies_parsed_at":"2023-09-21T20:03:49.124Z","dependency_job_id":"4e6c424e-b926-4e45-8b20-1813dae8fc67","html_url":"https://github.com/go-fed/apcore","commit_stats":{"total_commits":231,"total_committers":4,"mean_commits":57.75,"dds":"0.030303030303030276","last_synced_commit":"46677ce56296bbcf8a738ec285921dee4e7ffb18"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-fed%2Fapcore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-fed%2Fapcore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-fed%2Fapcore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/go-fed%2Fapcore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/go-fed","download_url":"https://codeload.github.com/go-fed/apcore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247713275,"owners_count":20983685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["activitypub","activitystreams","activitystreams-vocabulary","federated","framework","golang","social"],"created_at":"2024-09-24T22:29:40.386Z","updated_at":"2025-04-10T05:11:52.383Z","avatar_url":"https://github.com/go-fed.png","language":"Go","readme":"# apcore\n\n\u003e Server framework for quickly building ActivityPub applications\n\n*Under Construction*\n\n[![Build Status][Build-Status-Image]][Build-Status-Url] [![Go Reference][Go-Reference-Image]][Go-Reference-Url]\n[![Go Report Card][Go-Report-Card-Image]][Go-Report-Card-Url] [![License][License-Image]][License-Url]\n[![Chat][Chat-Image]][Chat-Url] [![OpenCollective][OpenCollective-Image]][OpenCollective-Url]\n\n`go get github.com/go-fed/apcore`\n\napcore is a powerful single server\n[ActivityPub](https://www.w3.org/TR/activitypub)\nframework for performant Fediverse applications.\n\nIt is built on top of the\n[go-fed/activity](https://github.com/go-fed/activity)\nsuite of libraries, which means it can readily allow application developers to\niterate and leverage new\n[ActivityStreams](https://www.w3.org/TR/activitystreams-core)\nor RDF vocabularies.\n\n## Features\n\n*This list is a work in progress.*\n\n* Uses `go-fed/activity`\n  * ActivityPub S2S (Server-to-Server) Protocol supported\n  * ActivityPub C2S (Client-to-Server) Protocol supported\n  * Both S2S and C2S can be used at the same time\n  * Comes with the Core \u0026 Extended ActivityStreams types\n  * Readily expands to support new ActivityStreams types and/or RDF vocabularies\n* Federation \u0026 Moderation Policy System\n  * Administrators and/or users can create policies to customize their federation experience\n  * Auditable results of applying policies on incoming federated data\n* Supports common out-of-the-box command-line commands for:\n  * Initializing a database with the appropriate `apcore` tables as well as your application-specific tables\n  * Initializing a new administrator account\n  * Creating a server configuration file in a guided flow\n  * Comprehensive help command\n  * Guided command line flow for administrators for all the above tasks, featuring Clarke the Cow\n* Configuration file support\n  * Add your configuration options to the existing `apcore` configuration options\n  * Administrators can customize their ActivityPub and your app's experience\n* Database support\n  * Currently, only PostgreSQL supported\n  * Others can be added with a some SQL work, in the future\n  * No ORM overhead\n  * Your custom application has access to `apcore` tables, and more\n* OAuth2 support\n  * Easy API to build authorization grant and validation flows\n  * Handles server side state for you\n* Webfinger \u0026 Host-Meta support\n\n## How To Use This Framework\n\n*This guide is a work in progress.*\n\nBuilding an application is not an easy thing to do, but following these steps\nreduces the cost of building a *federated* application:\n\n0. Implement the `apcore.Application` interface.\n0. Call `apcore.Run` with your implementation in `main`.\n\nThe most work is in the first step, as your application logic is able to live as\nfunctional closures as the `Application` is used within the `apcore` framework.\nSee the documentation on the `Application` interface for specific details.\n\n[Build-Status-Image]: https://travis-ci.org/go-fed/apcore.svg?branch=master\n[Build-Status-Url]: https://travis-ci.org/go-fed/apcore\n[Go-Reference-Image]: https://pkg.go.dev/badge/github.com/go-fed/apcore.svg\n[Go-Reference-Url]: https://pkg.go.dev/github.com/go-fed/apcore\n[Go-Report-Card-Image]: https://goreportcard.com/badge/github.com/go-fed/apcore\n[Go-Report-Card-Url]: https://goreportcard.com/report/github.com/go-fed/apcore\n[License-Image]: https://img.shields.io/github/license/go-fed/apcore?color=blue\n[License-Url]: https://www.gnu.org/licenses/agpl-3.0.en.html\n[Chat-Image]: https://img.shields.io/matrix/go-fed:feneas.org?server_fqdn=matrix.org\n[Chat-Url]: https://matrix.to/#/!BLOSvIyKTDLIVjRKSc:feneas.org?via=feneas.org\u0026via=matrix.org\n[OpenCollective-Image]: https://img.shields.io/opencollective/backers/go-fed-activitypub-labs\n[OpenCollective-Url]: https://opencollective.com/go-fed-activitypub-labs\n","funding_links":["https://opencollective.com/go-fed-activitypub-labs"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-fed%2Fapcore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgo-fed%2Fapcore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgo-fed%2Fapcore/lists"}