xpipe/README.md

38 lines
2.5 KiB
Markdown
Raw Normal View History

2022-08-13 19:29:26 +12:00
[![Build Status](https://github.com/xpipe-io/xpipe_java/actions/workflows/build.yml/badge.svg)](https://github.com/xpipe-io/xpipe_java/actions/workflows/build.yml)
2022-10-18 12:37:21 +13:00
[![Publish Status](https://github.com/xpipe-io/xpipe_java/actions/workflows/publish.yml/badge.svg)](https://github.com/xpipe-io/xpipe_java/actions/workflows/publish.yml)
2022-08-13 19:29:26 +12:00
2022-03-10 10:51:04 +13:00
## X-Pipe Java
2022-11-24 20:43:30 +13:00
The fundamental components of the [X-Pipe project](https://xpipe.io).
2022-03-10 10:51:04 +13:00
This repository contains the following four modules:
2022-11-24 20:43:30 +13:00
- Core - Shared core classes of the X-Pipe Java API, X-Pipe extensions, and the X-Pipe daemon implementation
- API - The API that can be used to interact with X-Pipe from any JVM-based language10
2022-03-10 10:51:04 +13:00
- 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
2022-06-18 10:29:41 +12:00
## Installation / Usage
2022-11-24 20:43:30 +13:00
The *core* and *extension* modules are used in X-Pipe extension development.
For setup instructions, see the [X-Pipe extension development](https://xpipe-io.readthedocs.io/en/latest/dev/extensions/index.html) section.
2022-06-18 10:29:41 +12:00
2022-11-24 20:43:30 +13:00
The *beacon* module handles all communication and serves as a
reference when implementing the communication of an API or program that interacts with the X-Pipe daemon.
2022-06-18 10:29:41 +12:00
2022-11-24 20:43:30 +13:00
The *api* module serves as a reference implementation for other potential X-Pipe APIs
and can also be used to access X-Pipe functionalities from your Java programs.
For setup instructions, see the [X-Pipe Java API Usage](https://xpipe-io.readthedocs.io/en/latest/dev/api/java/index.html) section.
2022-06-18 10:29:41 +12:00
2022-11-24 20:43:30 +13:00
## Development Notes
2022-03-10 10:51:04 +13:00
All X-Pipe components target [JDK 17](https://openjdk.java.net/projects/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](https://github.com/moditect/moditect-gradle-plugin).
These dependency generation rules are accumulated in the [X-Pipe dependencies](https://github.com/xpipe-io/xpipe_java_deps)
repository, which is shared between all components and integrated as a git submodule.
2022-03-11 06:48:06 +13:00
Some unit tests depend on a connection to an X-Pipe daemon to properly function.
2022-11-24 20:43:30 +13:00
To launch the installed daemon, it is required that you either have X-Pipe
installed or have set the `XPIPE_HOME` environment variable in case you are using a portable version.