Quilt is a Java implementation of the Interledger protocol.
This library can be used to send and receive Interledger payments using STREAM. It also supports a variety of other core Interledger primitives and protocols.
Note that this library does not implement a full Java Connector. For this functionality, see the Java ILP Connector project, which is built using Quilt.
Quilt is organised as a Maven multi-module project. Each module exists in a subdirectory that has its own child POM and README file. Dependency and plugin versions are managed in the parent project.
Issues are labelled and prefixed to make it easy to identify which project they relate to.
The ilp-core
module is the base library for any Interledger Java projects, providing service interfaces, packet definitions, and data models supporting the ILPv4 protocol (defined in IL-RFC-27).
These primitives form the foundation of the Interledger suite of protocols, and are used throughout the other modules in this project.
ILP Module | Javadoc Link |
---|---|
ilp-core |
The btp-core
module contains primitives to support the Bilateral Transfer Protocol (BTP v2.0) as defined by IL-RFC-23.
BTP Module | Javadoc Link |
---|---|
btp-core |
The codecs-parent
module contains an encoding and decoding framework plus serializers for ASN.1 OER formats defined in each IL-RFC. This module supports all primitives for the following protocols: ILP v4.0, IL-DCP v1.0, BTP 2.0, and STREAM v1.0.
Codec Module | Javadoc Link |
---|---|
codecs-framework |
|
codecs-btp |
|
codecs-ilp |
|
codecs-ildcp |
|
codecs-stream |
The ildcp-core
module contains primitives to support the Interledger Dynamic Configuration Protocol (IL-DCP v1.0) as defined by IL-RFC-31.
IL-DCP Module | Javadoc Link |
---|---|
ildcp-core |
The jackson-datatypes
module contains utilities to marshal and unmarshal various Quilt primitives to and from JSON using the Jackson library.
Jackson Module | Javadoc Link |
---|---|
jackson-datatypes |
The link-parent
module contains libraries that can be used as a network transport for Interledger accounts. Currently supported links are ILP-over-HTTP as defined in IL-RFC-35.
Link Module | Javadoc Link |
---|---|
link-core |
|
link-ilp-over-http |
The spsp-parent
module contains libraries that can be used to resolve Payment Pointers (as defined in IL-RFC-26 as well as the broader Simple Payment Setup Protocol (SPSP) as defined in IL-RFC-009.
SPSP Module | Javadoc Link |
---|---|
spsp-core |
|
spsp-client |
The stream-parent
module contains libraries for sending and receiving packetized payments using the STREAM protocol, defined in IL-RFC-29.
Stream Module | Javadoc Link |
---|---|
stream-core |
|
stream-client |
|
stream-receiver |
The examples
modules shows how to use the Quilt library in your code.
In order to properly build this project, you must download and install Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy files. For more details, follow the instructions here.
Modules in this library can be included in your Maven project by adding the Maven dependency for the module you would like to use. For example, to import ilp-core
, use the following coordinates:
<dependencies>
...
<dependency>
<groupId>org.interledger</groupId>
<artifactId>ilp-core</artifactId>
<version>1.0.3</version>
</dependency>
...
</dependencies>
Modules in this library can be included in your Gradle project by adding the Maven dependency for the module you would like to use. For example, to import ilp-core
, use the following coordinates:
dependencies {
...
compile group: 'org.interledger', name: 'ilp-core', version: '1.0.3'
...
}
Artifacts for this project are published to Maven Central. For a complete list, see: https://search.maven.org/search?q=g:org.interledger.
We welcome any and all submissions, whether it's a typo, bug fix, or new feature. To get started, first download the code:
git clone https://github.com/hyperledger/quilt
cd quilt
This project uses Maven to manage dependencies and other aspects of the build. To install Maven, follow the instructions at https://maven.apache.org/install.html.
Snapshot dependencies for this library can be included in your project by first adding a Snapshot Repository to your pom.xml
file, like this:
<repositories>
...
<snapshotRepository>
<id>sonatype</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
...
</repositories>
Next, add the following Maven dependency:
<dependencies>
...
<dependency>
<groupId>org.interledger</groupId>
<artifactId>ilp-core</artifactId>
<version>HEAD-SNAPSHOT</version>
</dependency>
...
</dependencies>
To import this library into a project that uses gradle, first add the Snapshot Repository to your gradle.properties
file, like this:
repositories {
mavenCentral()
maven {
url "https://oss.sonatype.org/content/repositories/snapshots/"
}
}
Next, import this library as a dependency, like this:
dependencies {
...
compile group: 'org.interledger', name: 'ilp-core', version: 'HEAD-SNAPSHOT'
...
}
By default, the build runs integration tests which depend on Docker daemon to be running. If you don't have Docker running, you can
skip integration tests using -DskipITs
(e.g. mvn clean install -DskipITs
).
Otherwise, to install docker, follow the instructions at https://docs.docker.com/install/
To build the project, execute the following command:
$ mvn clean install
The project uses checkstyle to keep code style consistent. All Checkstyle checks are run by default during the build, but if you would like to run checkstyle checks, use the following command:
$ mvn checkstyle:checkstyle