ActivityStreams data models
Represent actors, objects and activities as strongly typed Java models. Read and write the JSON-LD messages exchanged by ActivityPub services.
Open source · In development
An open-source Java library for developers adding ActivityPub to their applications. Connect your service to the Fediverse with reusable data models, federation utilities and HTTP signatures.
For Java backend developers and maintainers of Java-based platforms. Framework independent by design.
01 / The foundation
ActivityPub is a W3C standard that lets independent platforms exchange content and interact. It is the shared language behind the Fediverse: a network of services that connect without relying on a single provider.
ActivityPub4J is a library to integrate into your own Java application. It is being developed to handle shared protocol concerns: representing actors and activities, reading and writing messages, and supporting signed exchanges between servers. Your application supplies the features and user experience; ActivityPub4J supplies reusable federation building blocks.
Represent actors, objects and activities as strongly typed Java models. Read and write the JSON-LD messages exchanged by ActivityPub services.
Build on reusable utilities for incoming and outgoing activities, so your application can exchange messages with other ActivityPub servers.
Sign outgoing HTTP requests and verify incoming signatures. Real-world interoperability testing will help validate how the components work with other services.
Who it is for
For Java backend developers, open-source maintainers and teams extending existing Java-based platforms with decentralized communication.
Use the planned components as a starting point for an event platform, a fitness community or another service that shares activities across server boundaries.
Add ActivityPub support to your Java backend while keeping your own framework, application logic and user interface.
These are planned capabilities. ActivityPub4J is under development; this page does not announce a production release.
02 / Real-world connections
Born from the needs of Komunumo, built for the wider Java community. Two open-source projects plan to use ActivityPub4J and help validate it in practice.
03 / The way forward
A milestone-based plan, with documentation, automated tests and a CLI reference implementation to help developers get started.
ActivityStreams models, JSON serialization and deserialization, and automated tests.
Target: Alpha v0.1Inbox and outbox utilities, HTTP signatures and real-world interoperability testing.
Target: Beta v0.5WebFinger support and remote actor resolution for finding and connecting services.
Target: Release candidate v0.9A stable public API, comprehensive documentation and validated interoperability.
Target: v1.0Planned milestones, not release commitments. Scope and timing may evolve as development progresses.
04 / The people
Bringing Java engineering, open-source community experience and thoughtful design together.
05 / Supported by
ActivityPub4J is supported by the NGI0 Commons Fund, established by NLnet. The funding brings European and Swiss support to reusable, open-source infrastructure for the internet.
Funding is provided through the European Commission’s Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology, under grant agreement No. 101135429. Additional funding is provided by the Swiss State Secretariat for Education, Research and Innovation (SERI).
View the project at NLnet