Software Ecosystem

The XRP Ledger is home to a deep, layered ecosystem of software projects powering and enabling an Internet of Value. It's impossible to list every project, tool, and business that interacts with the XRP Ledger, so this page only lists a few categories and highlights some central projects that are documented here on xrpl.org .

Stack Levels

*Do not use formission-critical services. XRP LedgerPeer-to-PeerNetworkProgrammingLibrariesMiddleware APIsApps & Servicesrippled servers(direct & indirect peers)RelationalDBsInternalDBsData API*Apps & Services(Exchanges, wallets, explorers, etc.)ripple-lib (JavaScript)rippled serverPeerPeerREST-likeRippleAPIJSON-RPCWS
  • The basis of the XRP Ledger is a peer-to-peer network of always-on servers sharing transactions, engaging in the consensus process and processing transactions. Everything else in the XRP Ledger ecosystem is ultimately built on top of this peer-to-peer network, directly or indirectly.

  • Programming Libraries exist in higher level software, where they are imported directly into program code, and contain methods to access the XRP Ledger.

  • Middleware provides indirect access to XRP Ledger data. Applications in this layer often have their own data storage and processing.

  • Apps and Services provide user-level interaction with the XRP Ledger, or provide a basis for even higher-level apps and services.

rippled: The Core Server

The peer-to-peer network at the heart of the XRP Ledger requires a highly-reliable, efficient server to enforce the rules of consensus and transaction processing. Ripple manages and publishes a reference implementation of this server software, called rippled (pronounced "ripple-dee"). The server is available under a permissive open-source license , so anyone can inspect and modify their own instance of the server, and re-publish with few restrictions.

Every instance of rippled syncs to the same network (unless it's configured to follow a parallel network such as a test net) and has access to all communications across the network. Every rippled server on the network keeps a complete copy of the latest state data for the entire XRP Ledger, along with a slice of recent transactions and a record of the changes those transactions made, and every server processes every transaction independently while verifying that its outcome matches the rest of the network. Servers can be configured to keep more ledger history and to participate in the consensus process as a validator.

This server exposes rippled APIs for users to look up data, administer the server, and submit transactions.

Programming Libraries

Programming libraries are not strictly required to access XRP Ledger data, since you can use HTTP or WebSocket to connect to the rippled APIs directly. Libraries simplify some of the common work of accessing the rippled APIs, and convert the data into forms that are easier to understand and program with in the programming language of the library.

xrpl.js for JavaScript (formerly called "ripple-lib") is the longest-standing, most well-supported library for accessing the XRP Ledger. Many middleware services use programming libraries like this internally.

Middleware

Middleware services are programs that consume the XRP Ledger APIs on one side and provide their own APIs on the other side. They provide a layer of abstraction to make it easier to build higher-level applications by providing some common functionality as a service.

Unlike programming libraries, which are instantiated fresh and shut down with the program that imports them, middleware services typically stay running indefinitely, and may have their own databases (relational SQL databases or otherwise) and configuration files.

The Data API is an example of a middleware service on top of the XRP Ledger. The Data API collects and transforms XRP Ledger data, so that you can query by time, filter by data type, or perform data analysis.

XRP-API is another middleware service. XRP-API manages secret keys and provides a more convenient RESTful interface to the XRP Ledger for apps in any programming language.

Apps and Services

Atop the stack is where the truly exciting things happen. Apps and services provide a way for users and devices to connect to the XRP Ledger. At this level, exchanges list XRP, gateways issue other currencies for use in the decentralized exchange, and wallets provide user interfaces for buying, selling, or HODLing holding XRP. Many other possibilities exist, including additional services layered even higher.

A great way to build applications that are compatible with not only XRP but lots of other ways of denominating value is to use the Interledger Protocol with settlement in XRP.

There are many other examples of projects using XRP and adjacent technologies to interact with users. For some examples, see Businesses, Exchanges, and Wallets.

See Also