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.
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.
las2peer uses Java 8.
If you use an Oracle Java version, please make sure you have Java 8u162 or later installed, so that the Java Cryptography Extension (JCE) is enabled. Otherwise, you have to enable it manually. Each las2peer node performs an encryption self-test on startup.
- Apache ant
- Node 6 / npm
This repository contains three las2peer modules:
- Core (
- REST Mapper (
- Web Connector (
Each of them resides in its own subfolder, containing a build file providing the following tasks:
ant main_jarwill build the respective jar of the submodule. The jars will be stored in
ant junit_testswill run the respective JUnit tests. Test reports will be stored in
ant javadocwill create the JavaDocs for the respective submodule. The results will be stored in
ant allruns all the tasks from above.
ant deploy-localdeploys the respective submodule to the local Ivy repository. If you have set up a project to resolve dependencies from the local repository, you can conveniently test your local changes without pushing and publishing them.
Hint: If you want to build a module that depends on another module and you want to test them together, run
ant deploy-local on the dependency!
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
The build script provides the following tasks:
ant main_jarwill build the fat jar. The jar will be stored in
ant deploy-localdeploys the bundle to the local Ivy repository.
If you want to bundle your local changes, run
ant deploy-local on all modules.
Super Build Script
To make life easier for developers, this repository contains a build script for conveniently building multiple submodules.
ant build-onlywill run
deploy-localon each submodule
ant allwill run
deploy-localon each submodule
JavaDocs of the latest release can be found online:
Every commit to the develop branch is built by Jenkins and will be published as a snapshot to our Archiva. Releases are drafted from the master branch.