# Does anyone know of a working implementation of the ActivityPub protocol in Racket?

**URL:** <https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571>\
**Category:** Questions & Answers\
**Created:** [December 23, 2022, 11:55am UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571 "2022-12-23T11:55:52Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [December 23, 2022, 11:55am UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/1 "2022-12-23T11:55:52Z")

</div>

Does anyone know of a working implementation of the ActivityPub protocol in Racket?

s.

---

<div class="post-metadata">

**Author:** ![jacobhall](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jacobhall/32/624_2.png) [@jacobhall](https://racket.discourse.group/u/jacobhall)\
**Post date:** [December 27, 2022, 9:03pm UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/2 "2022-12-27T21:03:17Z")

</div>

I've been thinking about writing an implementation to use on my website. Would love to collaborate on it if you're interested! I am pretty new to Racket, so it would be nice to have another pair of eyes on the plan

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [January 5, 2023, 8:43am UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/3 "2023-01-05T08:43:36Z")

</div>

Thanks @jacobhall

I'll admit I'm not sure if this is something I have the time to embark on.

What capabilities would your website need?

Μy understanding of is ActivityPub provides two layers:

> - **A server to server federation protocol** (so decentralized websites can share information)
> - **A client to server protocol** (so users, including real-world users, bots, and other automated processes, can communicate with ActivityPub using their accounts on servers, from a phone or desktop or web application or whatever)

In addition, Mastodon has its own client api [https://docs.joinmastodon.org/client/](https://docs.joinmastodon.org/client/)

I did find an implementation in scheme but I don’t know if it is used and have not reviewed it: [https://codeberg.org/WammKD/Guile-Mastodon](https://codeberg.org/WammKD/Guile-Mastodon)

S.

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [January 5, 2023, 8:52pm UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/4 "2023-01-05T20:52:44Z")

</div>

Also, this may be well-known to y'all but I don't know for sure: Christine Lemmer-Webber, one of the four authors of the ActivityPub w3c recommendation, has participated in several RacketCons, and may have useful information in this space.

> **[Christine Lemmer-Webber (@cwebber@octodon.social)](https://octodon.social/@cwebber)**
>
> 34.3K Posts, 1.64K Following, 9.45K Followers · CTO at @spritelyinst. I'm here to fix the Internet.
> ActivityPub co-author, co-host of @fossandcrafts. Nonbinary trans-femme, she/they. https://dustycloud.org/

---

<div class="post-metadata">

**Author:** ![jacobhall](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jacobhall/32/624_2.png) [@jacobhall](https://racket.discourse.group/u/jacobhall)\
**Post date:** [January 18, 2023, 2:46am UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/5 "2023-01-18T02:46:16Z")

</div>

In response to @spdegabrielle above -- I'm interested in implementing the **server to server** federation protocol.

With a few more pressing projects at the moment, it might be a while before I take a stab at this. To anyone who comes across this thread, feel free to ping me if you'd like to get this going together.

---

<div class="post-metadata">

**Author:** ![hendrikboom3](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/hendrikboom3/32/2748_2.png) [@hendrikboom3](https://racket.discourse.group/u/hendrikboom3)\
**Post date:** [January 18, 2023, 12:59pm UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/6 "2023-01-18T12:59:31Z")

</div>

> In response to @spdegabrielle above -- I'm interested in implementing the **server to server** federation protocol.
> 
> With a few more pressing projects at the moment, it might be a while before I take a stab at this. To anyone who comes across this thread, feel free to ping me if you'd like to get this going together.

I have implemented the OSI transport and (partial) session layers about 30 years ago.

I know nothing about any networking in Racket, nor about the Activitypub protocol.

But I'm interested,  
Butbecause I have attention deficit, I may have difficulty finding the time to work on this project. (much like you, but for differet reasons).

-- hendrik

---

<div class="post-metadata">

**Author:** ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)\
**Post date:** [January 18, 2023, 1:36pm UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/7 "2023-01-18T13:36:44Z")

</div>

@jacobhall & @hendrikboom3

I'd suggest finding a platform that will let you collaborate asynchronously, that you can publish the address of here so others can join in.

While there are [many](https://en.wikipedia.org/wiki/Category:Project_hosting_websites) options, [not all based on git](https://www.fossil-scm.org/home/doc/trunk/www/index.wiki), these are some I've seen racketeers use:

- Source Hut. e.g. [r16: Community-Driven Interactive Code Evaluation](https://sr.ht/~williewillus/r16/)
- Gitlab. [racket · Topics · Explore · GitLab](https://gitlab.com/explore/projects/topics/racket)
- GitHub [racket · GitHub Topics · GitHub](https://github.com/topics/racket)

(not an endorsement - I've only used GitHub in anger so I can't provide a comparison)

---

<div class="post-metadata">

**Author:** ![jacobhall](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jacobhall/32/624_2.png) [@jacobhall](https://racket.discourse.group/u/jacobhall)\
**Post date:** [January 18, 2023, 2:20pm UTC](https://racket.discourse.group/t/does-anyone-know-of-a-working-implementation-of-the-activitypub-protocol-in-racket/1571/8 "2023-01-18T14:20:27Z")

</div>

> these are some I've seen racketeers use

@spdegabrielle git feels like the move. I have accounts on all of the services you listed, so I'm cool with whichever. That said, GitHub is usually my choice because in my experience there are more people who know that platform and might contribute. If we go that route, we could perhaps mirror the project to Sourcehut and/or GitLab. If that would prevent your contributions though, let's use a platform you're comfortable on! @hendrikboom3, any thoughts?
