Cap'n Proto based fediverse common API
2022-12-08 23:26:01 +02:00
COPYING Write readme 2022-12-08 22:27:43 +02:00
introducer.capnp Add toplevel comment to introdcer.capnp 2022-12-08 23:18:49 +02:00
README.md Fix typo in readme 2022-12-08 23:26:01 +02:00

Capybara

Core API for a Cap'n Proto based Fediverse.

Status: Early prototyping.

Current focus: Minimal API to support a very basic federated app demo.

Content:

Background

Since 2019, people have been working on bringing ActivityPub based federation to software forges, by developing the ForgeFed vocabulary and protocol, which is an ActivityPub extension. But using ActivityPub has brought challenges, in particular that ActivityPub is mostly suited for personal web publishing social web applications, and much less suited for serving as an RPC system enabling complex distributed collaboration and interaction patterns and flexible expressive authorization for resource access.

This repo is part of an attempt, that started in November 2022, to implement forge federation using a distributed object capability programming system. The Spritely project is creating such a system, but it's still in rapid development and research, and implemented only in the Guile and Racket programming languages. Therefore, this attempt is being made using Cap'n Proto, which is more mature and available in more programming languages.

However, while Spritely is a full suite with "batteries included", Cap'n Proto is primarily a capability-based RPC and data serialization system, which is a foundation on which we can add the rest of the necessary components.

This repo aims to define an API, along with any necessary specification, technical detail and documentation, that would serve as the core set of tools that any application in the OCAP-RPC based Fediverse would need.

Participation

This project is being started by fr33domlover.

If you'd like to join, or contribute, or provide feedback, or discuss, or ask questions, join the Matrix room general-forgefed:matrix.batsense.net.

Copying and Reuse

All the files in this repo, unless stated otherwise, are released to the public domain using the CC0 Public Domain Dedication. See the file COPYING.

The repo may switch in the near future to some other free (as in freedom) software license.