summaryrefslogtreecommitdiff
path: root/taler-developer-manual.rst
diff options
context:
space:
mode:
authorChristian Grothoff <grothoff@gnunet.org>2023-04-18 18:56:20 +0200
committerChristian Grothoff <grothoff@gnunet.org>2023-04-18 18:56:20 +0200
commit88fc9a254fc9fca95566ce9625cf96a97c05fc16 (patch)
treec111125a6cbad29a1233f0347e0508595a627d51 /taler-developer-manual.rst
parent159339b878b8e88ba7cb7576ffe629b75d3b3783 (diff)
downloaddocs-88fc9a254fc9fca95566ce9625cf96a97c05fc16.tar.gz
docs-88fc9a254fc9fca95566ce9625cf96a97c05fc16.tar.bz2
docs-88fc9a254fc9fca95566ce9625cf96a97c05fc16.zip
add project overview (fixes #7373)
Diffstat (limited to 'taler-developer-manual.rst')
-rw-r--r--taler-developer-manual.rst79
1 files changed, 79 insertions, 0 deletions
diff --git a/taler-developer-manual.rst b/taler-developer-manual.rst
index 49ffa250..654b7e7b 100644
--- a/taler-developer-manual.rst
+++ b/taler-developer-manual.rst
@@ -34,6 +34,85 @@ Developer's Manual
.. contents:: Table of Contents
+Project Overview
+================
+
+GNU Taler consists of a large (and growing) number of components
+in various Git repositories. The following list gives a first
+overview:
+
+ * exchange: core payment processing logic with a REST API, plus various
+ helper processes for interaction with banks and cryptographic
+ computations. Also includes the logic for the auditor and an
+ in-memory "bank" API implementation for testing.
+
+ * libeufin: implementation of the "bank" API using the EBICS protocol
+ used by banks in the EU. Allows an exchange to interact with
+ European banks.
+
+ * deploymerization: implementation of the "bank" API on top of
+ blockchains, specifically Bitcoin and Ethereum. Allows an exchange
+ to interact with crypto-currencies.
+
+ * merchant: payment processing backend to be run by merchants,
+ offering a REST API.
+
+ * wallet-core: platform-independent implementation of a wallet to be run by
+ normal users. Includes also the WebExtension for various browsers.
+ Furthermore, includes various single-page apps used by other
+ components (especially as libeufin and merchant). Also includes
+ command-line wallet and tools for testing.
+
+ * taler-android: Android Apps including the Android wallet, the
+ Android point-of-sale App and the Android casher app.
+
+ * taler-ios: iOS wallet App.
+
+ * sync: backup service, provides a simple REST API to allow users to
+ make encrypted backups of their wallet state.
+
+ * anastasis: key escrow service, provides a simple REST API to allow
+ users to distribute encryption keys across multiple providers and
+ define authorization policies for key recovery.
+
+ * taler-mdb: integration of Taler with the multi-drop-bus (MDB) API
+ used by vending machines. Allows Taler payments to be integrated
+ with vending machines.
+
+ * gnu-taler-payment-for-woocommerce: payment plugin for the
+ woocommerce (wordpress) E-commerce solution.
+
+ * twister: man-in-the-middle proxy for tests that require fuzzing a
+ REST/JSON protocol. Used for some of our testing.
+
+ * challenger: implementation of an OAuth 2.0 provider that can be used
+ to verify that a user can receive SMS or E-mail at particular addresses.
+ Used as part of KYC processes of the exchange.
+
+ * taler-mailbox: messaging service used to store and forward payment
+ messages to Taler wallets.
+
+ * taldir: directory service used to lookup Taler wallet addresses for
+ sending invoices or payments to other wallets.
+
+ * taler-merchant-demos: various demonstration services operated at
+ 'demo.taler.net', including a simple shop, donation page and a
+ survey with tipping functionality.
+
+There are other important repositories without code, including:
+
+ * gana: Hosted on git.gnunet.org, this repository defines various
+ constants used in the GNU Taler project.
+
+ * docs: documentation, including this very document.
+
+ * marketing: various presentations, papers and other resources for
+ outreach.
+
+ * large-media: very large data objects, such as videos.
+
+ * www: the taler.net website.
+
Fundamentals
============