- Python 98.4%
- HTML 0.8%
- CSS 0.7%
- Shell 0.1%
| .github | ||
| docs | ||
| scripts | ||
| src/profed | sign all federation requests independent of HTTP-method | |
| tests | sign all federation requests independent of HTTP-method | |
| .gitignore | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
ProFed
ProFed is a reference implementation of a federated professional social network.
The goal of this project is to build an open, scalable, and high-availability platform for professional networking that is not controlled by a single vendor, and that supports federation between independent installations.
Vision
ProFed aims to provide:
- Federated professional profiles
- Distributed job and opportunity exchange
- Decentralized identity and trust mechanisms
- High availability and horizontal scalability
- Replaceable infrastructure adapters (message bus, storage, API, etc.)
The architecture is intentionally modular and component-based, with a message-driven core that allows future high-availability deployments and multi-instance services.
Current State
This repository currently contains:
- Configuration framework (in progress)
- PostgreSQL-backed message bus (in progress)
- Component lifecycle management framework (in progress)
- Unit test infrastructure
- Development environment setup
Functional components are not yet implemented.
Roadmap (Rough Outline)
Planned development stages:
- Finalize core runtime framework
- Implement PostgreSQL message bus backend
- Implement first components (profile ingestion, API, scraper)
- Define protocol specification (MIT licensed)
- Add federation mechanisms
- Harden system for high-availability deployments
Licensing
This reference implementation is licensed under:
AGPL 3.0 or later
The protocol specification and architecture documentation are licensed under:
MIT License
See CONTRIBUTING.md for details.
Canonical Repository
Canonical repository:
https://codeberg.org/ProFed/ProFed
Please open issues there.
GitHub, and GitLab mirrors (automatically synchronized):
Issues should preferably be raised on Codeberg.
Development Setup
Requirements
- Python 3.11 or newer
- uv (Python package manager)
Install uv:
curl -Ls https://astral.sh/uv/install.sh | sh
Setup Environment
uv venv
uv pip install -e .[dev]
Activate environment:
source .venv/bin/activate
Running Tests
Run tests once:
./scripts/test.sh
Run tests continuously with visual feedback:
./scripts/watch-tests.sh
Documentation
Additional documentation is located in the docs/ directory:
Contributing
Please see CONTRIBUTING.md for contribution guidelines.