bovine
bovine splits the typical Fediverse server into small, reusable chunks. This package contains the first chunk. The tutorials below illustrate how to use this package to perform the core functionality of a FediVerse application. The FediVerse is considered here to considered to consist of entities communicating through ActivityPub. Furthermore, this package contains methods for signing messages and looking up information through webfinger.
As mentioned above this package is meant to be the basis for other things. If one wants to build a Fediverse Server, one will need bovine_herd
contained in the bovine repository linked above.
Installation
One can install the package from PyPI via
Other parts of bovine
The libraries bovine-store, bovine-process, and bovine-herd build upon bovine to provide more features. Summarizing, bovine-store allows one to store actor objects owned by your server, and arbitrary ActivityPub objects in an SQL based database. bovine-process is the side effect logic, based on the BovineStoreActor interface. Finally, bovine-herd is the code necessary to build a full server.
Projects and tools using bovine
The following are a few things that have been build using bovine, that are meant to be independent tools.
- Verify your Fediverse actor is a tool to verify that your Fediverse implementation implements the actor correctly. More tools of this type can be found at Fun Fediverse Development.
- Pixels is a collaborative pixel art application for the Fediverse
- jsonld tracks the JSON-LD properties used in the Fediverse
The following are tools build using bovine that are meant to be part of a Fediverse application
- cattle_grid provides an authentication middleware. This means that it takes care of validating incoming HTTP signatures
Contributing
First, you are welcome to contribute to bovine. The list of current contributors is available here. The basic setup can be achieved by
git clone https://codeberg.org/bovine/bovine.git
cd bovine
poetry install --with dev,test,doc --all-extras
poetry run pytest # (2)
poetry run ruff check --fix .
poetry run ruff format .
./run_behave.sh # (1)
- runs behavior driven tests, whose features are contained in fediverse-features.
- unit tests; contained in
test_
files places along the code
If you know what you want to do, the simplest way is to open a pull request. Woodpecker will then run the test suite and the badge should stay green. Also code covered by tests is better than untested code. If you need to discuss things first, please open an issue.