taler-rust

GNU Taler code in Rust. Largely core banking integrations.
Log | Files | Refs | Submodules | README | LICENSE

README.md (2530B)


      1 # Taler Rust
      2 
      3 GNU Taler utils in Rust and some third parties adapters.
      4 
      5 ## Adapters
      6 
      7 ### taler-magnet-bank
      8 
      9 GNU Taler adapter for the [Magnet Bank](https://www.magnetbank.hu/) API. Support
     10 the [Taler Wire Gateway API](https://docs.taler.net/core/api-bank-wire.html) and
     11 the [Taler Bank Revenue API](https://docs.taler.net/core/api-bank-revenue.html).
     12 
     13 Setup documentation can be found [here](https://docs.taler.net/taler-magnet-bank-manual.html).
     14 
     15 ### taler-cyclos
     16 
     17 GNU Taler adapter for the [Cyclos](https://www.cyclos.org/) API. Support
     18 the [Taler Wire Gateway API](https://docs.taler.net/core/api-bank-wire.html) and
     19 the [Taler Bank Revenue API](https://docs.taler.net/core/api-bank-revenue.html).
     20 
     21 Setup documentation can be found [here](https://docs.taler.net/taler-cyclos-manual.html).
     22 
     23 ## Project structure
     24 
     25 - **adapters**: GNU Taler adapters
     26   - **taler-magnet-bank**: Magnet Bank adapter
     27   - **taler-cyclos**: Cyclos network adapter
     28 - **common**: Rust GNU Taler libraries
     29   - **failure-injection**: Test utils to test failures paths
     30   - **taler-api**: GNU Taler API implementation
     31   - **taler-build**: GNU Taler build time constants
     32   - **taler-common**: GNU Taler component logic and types
     33   - **taler-test-utils**: Test utils for GNU Taler adapter written in Rust GNU
     34 - **taler-apns-relay**: APNs relay
     35 
     36 ## Getting Started for Development
     37 
     38 Program versions come from `git describe --tags --always --abbrev=8` at build
     39 time, independently of Cargo manifest versions. Git takes precedence over a
     40 `.version` file in the checkout. Before exporting a source archive, run:
     41 
     42 ```sh
     43 git describe --tags --always --abbrev=8 > .version
     44 ```
     45 
     46 Include `.version` at the archive root. Builds without Git metadata use that
     47 file and fail if it is missing or does not contain a nonempty single-line
     48 version.
     49 
     50 Any Rust toolchain on `$PATH` will do, distribution packages included; `rustup`
     51 is not required. The tree needs **rustc >= 1.93**, so on Debian stable install
     52 it from backports (`sudo apt install -t trixie-backports rustc cargo`).
     53 
     54 ```sh
     55 sudo apt install cargo rustc   # or any other toolchain, e.g. via rustup
     56 ./bootstrap
     57 ./configure
     58 make check
     59 ```
     60 
     61 `./configure` reports the cargo and rustc it found and records them in
     62 `build-system/config.mk`; override the choice with `CARGO=` / `RUSTC=`:
     63 
     64 ```sh
     65 CARGO=$HOME/.cargo/bin/cargo RUSTC=$HOME/.cargo/bin/rustc ./configure
     66 ```
     67 
     68 `make check` needs a PostgreSQL cluster it can reach as the current user, with a
     69 `taler_rust_check` database it can create further test databases from.