{"id":15058813,"url":"https://github.com/benpate/hannibal","last_synced_at":"2026-03-12T00:06:59.482Z","repository":{"id":65801316,"uuid":"600133445","full_name":"benpate/hannibal","owner":"benpate","description":"ActivityPub library for Go","archived":false,"fork":false,"pushed_at":"2024-02-29T17:17:02.000Z","size":988,"stargazers_count":24,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-23T04:03:10.228Z","etag":null,"topics":["activitypub","activitystreams","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benpate.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,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-02-10T16:56:01.000Z","updated_at":"2024-04-08T22:45:48.000Z","dependencies_parsed_at":"2023-09-21T20:01:45.137Z","dependency_job_id":"6a5a0b68-fdb1-43d7-9ada-6e7a1e42bd8b","html_url":"https://github.com/benpate/hannibal","commit_stats":{"total_commits":197,"total_committers":1,"mean_commits":197.0,"dds":0.0,"last_synced_commit":"68a2a57663d480f1ce68bd0a43addf4ded33b7c9"},"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benpate%2Fhannibal","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benpate%2Fhannibal/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benpate%2Fhannibal/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benpate%2Fhannibal/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benpate","download_url":"https://codeload.github.com/benpate/hannibal/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248198884,"owners_count":21063628,"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","golang"],"created_at":"2024-09-24T22:30:53.950Z","updated_at":"2026-03-12T00:06:59.474Z","avatar_url":"https://github.com/benpate.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hannibal\n\n\u003cimg src=\"https://github.com/benpate/hannibal/raw/main/meta/logo.jpg\" style=\"width:100%; display:block; margin-bottom:20px;\"  alt=\"Oil painting titled: Hannibal in the Alps, by R.B. Davis\"\u003e\n\n[![GoDoc](https://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://pkg.go.dev/github.com/benpate/hannibal)\n[![Version](https://img.shields.io/github/v/release/benpate/hannibal?include_prereleases\u0026style=flat-square\u0026color=brightgreen)](https://github.com/benpate/hannibal/releases)\n[![Build Status](https://img.shields.io/github/actions/workflow/status/benpate/hannibal/go.yml?style=flat-square)](https://github.com/benpate/hannibal/actions/workflows/go.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/benpate/hannibal?style=flat-square)](https://goreportcard.com/report/github.com/benpate/hannibal)\n[![Codecov](https://img.shields.io/codecov/c/github/benpate/hannibal.svg?style=flat-square)](https://codecov.io/gh/benpate/hannibal)\n\n## Triumphant ActivityPub for Go\n\nHannibal is an experimental ActivityPub library for Go. It's goal is to be a robust, idiomatic, and thoroughly documented ActivityPub implementation fits into your application without any magic or drama.\n\n## PLEASE USE.. \\*with caution\n\nI would be honored for you to see if Hannibal works for your project. It is being used successfully in several production websites.\n\nHowever, it _is_ still subject to significant breaking changes. So, please [reach out](https://mastodon.social/@benpate) and I am happy to help you get things working in your own software. And, please be prepared for the ground to shift under your feet with newer versions.\n\n## Packages\n\nLike the ActivityPub spec itself, Hannibal is broken into several layers:\n\n### pub - ActivityPub client/server\n\nhttps://www.w3.org/TR/activitypub/\n\nThis is not an ActivityPub framework, but a simple library that easily plugs into your existing app. Add ActivityPub behaviors to your existing handlers, and send ActivityPub messages to\n\n### vocab - ActivityStreams Vocabulary\n\nhttps://www.w3.org/TR/activitystreams-vocabulary/\n\nThe `vocab` package includes the standard ActivityStream vocabulary, including names of actions, objects and properties used in ActivityPub.\n\n### streams - ActivityStreams data structures\n\nhttps://www.w3.org/TR/activitystreams-core/\n\nThe `streams` package contains common data structures defined in the ActivityStreams spec, notably definitions for: `Document`, `Collection`, `OrderedCollection`, `CollectionPage`, and `OrderedCollectionPage`. These are used by ActivityPub to send and receive multiple records in one HTTP request.\n\nThis package also includes a lightweight wrapper around generic data structures (like `map[string]any` and `[]any`) that makes it easy to access data structures within an ActivityStreams/JSON-LD document.\n\n### sigs - HTTP Signatures and Digests\n\nhttps://datatracker.ietf.org/doc/draft-ietf-httpbis-message-signatures\n\nThe `sigs` package creates and verifies HTTP signatures and Digests.\n\n## Pull Requests Welcome\n\nThis library is a work in progress, and will benefit from your experience reports, use cases, and contributions. If you have an idea for making this library better, send in a pull request. We're all in this together! 🐘\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenpate%2Fhannibal","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenpate%2Fhannibal","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenpate%2Fhannibal/lists"}