rwth-acis / las2peer

A Java-based decentralized framework for distributing community services in a peer-to-peer infrastructure.
https://las2peer.org
Other
52 stars 13 forks source link
encryption java las2peer microservices microservices-architecture p2p restful-api

las2peer

Java CI with Gradle Gitter Javadoc

las2peer is a Java-based server framework for developing and deploying microservices in a distributed Peer-to-Peer (P2P) environment. It is developed by the Advanced Community Information Systems (ACIS) group at the Chair of Computer Science 5 (Information Systems & Databases), RWTH Aachen University, Germany. It's main focus lies on providing developers with a tool to easily develop and test their microservices and deploy them in a P2P network without having to rely on a centralized infrastructure. Communication between nodes is realized using the FreePastry library.

For more information on the core concepts of las2peer, please visit las2peer.org or read the las2peer Primer.

Service Development

This project contains las2peer itself. To develop a service for las2peer, please use the las2peer Template Project and follow the instructions of the project's ReadMe.

If you want to learn more about las2peer, please visit the las2peer Template Project's Wiki Page.

Preparations

Java

las2peer uses Java 17.

Build Dependencies

Project Structure

Modules

This repository contains three las2peer modules:

Each of them resides in its own subfolder, containing a build file providing the following tasks:

Bundle

las2peer has a modular structure and many dependencies. However, most installations use all modules together, this is why we provide a bundle of all submodules and their dependencies in one single jar. The build script for the bundle can be found in /bundle.

The build script provides the following tasks:

Super Build Script

To make life easier for developers, this repository contains a build script for conveniently building multiple submodules.

Documentation

JavaDocs of the latest release can be found online:

CI

Every commit to the develop branch is built by GitHub actions and will be published as a snapshot to our Archiva. Releases are drafted from the master branch.

Importing

From Version 1.4.0 on, las2peer-bundle is available on Maven Central. To import las2peer into your project, add the following dependency to your build file:

implementation "io.github.rwth-acis.org.las2peer:las2peer-bundle:1.4.0"

As a repository, only Maven Central is required.