Metadata-Version: 2.1
Name: bovine
Version: 0.5.12
Summary: Core functionality of bovine needed to build fediverse applications
Home-page: https://codeberg.org/bovine/bovine
License: MIT
Keywords: ActivityPub,FediVerse
Author: Helge
Author-email: helge.krueger@gmail.com
Requires-Python: >=3.11,<4.0
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: repl
Provides-Extra: server
Requires-Dist: aiodns (>=3.0.0,<4.0.0)
Requires-Dist: aiohttp (>=3.8.6,<4.0.0)
Requires-Dist: asyncstdlib (>=3.10.7,<4.0.0)
Requires-Dist: based58 (>=0.1.1,<0.2.0)
Requires-Dist: beautifulsoup4 (>=4.12.2,<5.0.0)
Requires-Dist: black ; extra == "repl"
Requires-Dist: bleach (>=6.0.0,<7.0.0) ; extra == "repl"
Requires-Dist: click (>=8.1.7,<9.0.0) ; extra == "repl"
Requires-Dist: cryptography (>=43.0.0,<44.0.0)
Requires-Dist: http-sf (>=1.0.1,<2.0.0)
Requires-Dist: jcs (>=0.2.1,<0.3.0)
Requires-Dist: ptpython (>=3.0.23,<4.0.0) ; extra == "repl"
Requires-Dist: pydantic (>=2.5.3,<3.0.0)
Requires-Dist: pyld (>=2.0.3,<3.0.0)
Requires-Dist: quart (>=0.19.6,<0.20.0) ; extra == "server"
Requires-Dist: requests (>=2.30.0,<3.0.0)
Project-URL: Documentation, https://bovine.readthedocs.io/en/latest/
Project-URL: Repository, https://codeberg.org/bovine/bovine
Description-Content-Type: text/markdown

<!--
SPDX-FileCopyrightText: 2023 Helge
SPDX-FileCopyrightText: 2024 helge

SPDX-License-Identifier: MIT
-->

# Bovine

Bovine is a basic utility library for the Fediverse. It can be used both to build ActivityPub Client applications and ActivityPub Servers. In addition to [ActivityPub](https://activitypub.rocks/) support, it also provides utilities to deal with [webfinger](https://webfinger.net), nodeinfo, and HTTP Signatures.

The bovine library can just be installed via pip

```bash
pip install bovine
```

Documentation including tutorials is available at [ReadTheDocs](https://bovine.readthedocs.io/en/latest/).
An entire working ActivityPub server can be found in the [bovine repository](https://codeberg.org/bovine/bovine/).

## Feedback

Issues about bovine should be filed as an [issue](https://codeberg.org/bovine/bovine/issues).

## Running BDD Tests

The following commands run the implemented BDD tests.

```bash
cd features
git clone https://codeberg.org/helge/fediverse-features.git
cd ..
behave -i http_signature
behave -i fep-4adb
behave -i fep-8b32
```

## Contributing

If you want to contribute, you can start by working on issues labeled [Good first issue](https://codeberg.org/bovine/bovine/issues?q=&type=all&state=open&labels=110885&milestone=0&assignee=0&poster=0). The tech stack is currently based on asynchronous python, using the following components:

- [aiohttp](https://docs.aiohttp.org/en/stable/index.html) for http requests.
- [quart](https://quart.palletsprojects.com/en/latest/) as a webserver.
- [cryptography](https://cryptography.io/en/latest/).
- [pytest](https://docs.pytest.org/en/7.3.x/) for testing.
- [ruff](https://pypi.org/project/ruff/) for linting.

