#interledger #service #ilp #account #abstraction #tower #request

interledger-service

The core abstraction for the Interledger.rs implementation

8 unstable releases (3 breaking)

0.4.0 Nov 11, 2019
0.3.0 Oct 29, 2019
0.2.2-beta.3 Oct 10, 2019
0.2.2-beta.1 Sep 28, 2019
0.1.0 Mar 11, 2019

#14 in #ilp

Download history 29/week @ 2024-03-13 42/week @ 2024-03-20 77/week @ 2024-03-27 70/week @ 2024-04-03 28/week @ 2024-04-10 31/week @ 2024-04-17 37/week @ 2024-04-24 47/week @ 2024-05-01 42/week @ 2024-05-08 32/week @ 2024-05-15 43/week @ 2024-05-22 24/week @ 2024-05-29 27/week @ 2024-06-05 31/week @ 2024-06-12 44/week @ 2024-06-19 27/week @ 2024-06-26

130 downloads per month
Used in 16 crates (15 directly)

Apache-2.0

94KB
2.5K SLoC

interledger-service

This is the core abstraction used across the Interledger.rs implementation.

Inspired by tower, all of the components of this implementation are "services" that take a request type and asynchronously return a result. Every component uses the same interface so that services can be reused and combined into different bundles of functionality.

The Interledger service traits use requests that contain ILP Prepare packets and the related from/to Accounts and asynchronously return either an ILP Fullfill or Reject packet. Implementations of Stores (wrappers around databases) can attach additional information to the Account records, which are then passed through the service chain.

Example Service Bundles

The following examples illustrate how different Services can be chained together to create different bundles of functionality.

SPSP Sender

SPSP Client --> ValidatorService --> RouterService --> HttpOutgoingService

Connector

HttpServerService --> ValidatorService --> RouterService --> BalanceAndExchangeRateService --> ValidatorService --> HttpOutgoingService

STREAM Receiver

HttpServerService --> ValidatorService --> StreamReceiverService

Dependencies

~5.5–8.5MB
~170K SLoC