Your entire server infrastructure at your fingertips
Find a file
Christopher Schnick 3cc527dfa3 Large refactor
2022-06-18 00:29:41 +02:00
.github/workflows Attempt to fix build 2022-03-10 20:04:54 +01:00
api Large refactor 2022-06-18 00:29:41 +02:00
beacon Large refactor 2022-06-18 00:29:41 +02:00
core Large refactor 2022-06-18 00:29:41 +02:00
deps@49a1ad06bc Add textual flag to value node, prepare for text data sources, and various other small fixes 2022-04-13 20:35:16 +02:00
extension Large refactor 2022-06-18 00:29:41 +02:00
gradle/wrapper Fix standalone unit tests 2022-03-10 18:48:06 +01:00
samples Extend node variants, rework provider structure 2022-05-19 18:26:10 +02:00
.gitattributes Initial commit 2021-12-01 19:17:54 +01:00
.gitignore Rework beacon connections and flesh out API more 2022-03-05 20:46:33 +01:00
.gitmodules Initial commit 2021-12-01 19:17:54 +01:00
gradlew Initial commit 2021-12-01 19:17:54 +01:00
gradlew.bat Initial commit 2021-12-01 19:17:54 +01:00
jreleaser.gradle Large refactor 2022-06-18 00:29:41 +02:00
LICENSE Add license 2022-03-10 20:16:46 +01:00
README.md Large refactor 2022-06-18 00:29:41 +02:00
settings.gradle Fix standalone unit tests 2022-03-10 18:48:06 +01:00
version Cleanup, some documentation, and refactoring 2022-03-08 23:30:13 +01:00

X-Pipe Java

The fundamental components of the X-Pipe project. This repository contains the following four modules:

  • Core - Shared core classes of the Java API and the X-Pipe daemon implementation
  • API - The API that can be used to interact with X-Pipe from any JVM-based languages
  • Beacon - The X-Pipe beacon component is responsible for handling all communications between the X-Pipe daemon and the client applications, for example the various programming language APIs and the CLI
  • Extension - An API to create all different kinds of extensions for the X-Pipe platform

Installation / Usage

The core and extension libraries are used in X-Pipe extension development. For setup instructions, see the X-Pipe extension development section.

The beacon library handles all communication and serves as a reference when implementing an API or program that communicates with the X-Pipe daemon.

The api library serves as a reference implementation for other potential X-Pipe APIs and is also used to enable your Java program to communicate with X-Pipe. For setup instructions, see the X-Pipe Java API Usage section.

Development

All X-Pipe components target JDK 17 and make full use of the Java Module System (JPMS). All components are modularized, including all their dependencies. In case a dependency is (sadly) not modularized yet, module information is manually added using moditect. These dependency generation rules are accumulated in the X-Pipe dependencies repository, which is shared between all components and integrated as a git submodule.

Some unit tests depend on a connection to an X-Pipe daemon to properly function. To launch the installed daemon, it is required that the XPIPE_HOME environment variable is set or the xpipe / xpipe.exe CLI executable is added to the PATH variable.