payjoin/
lib.rs

1#![cfg_attr(docsrs, feature(doc_cfg))]
2
3//! # Payjoin implementation in Rust
4//!
5//! Supercharge payment batching to save you fees and preserve your privacy.
6//!
7//! This library implements both [BIP 78 Payjoin V1](https://github.com/bitcoin/bips/blob/master/bip-0078.mediawiki) and [BIP 77 Payjoin V2](https://github.com/bitcoin/bips/blob/master/bip-0077.md).
8//!
9//! Only the latest BIP 77 Payjoin V2 is enabled by default. To use BIP 78 Payjoin V1, enable the `v1` feature.
10//!
11//! The library is perfectly IO-agnostic — in fact, it does no IO by default without the `io` feature.
12//!
13//! Types relevant to a Payjoin Directory as defined in BIP 77 are available in the [`directory`] module enabled by
14//!  the `directory` feature.
15//!
16//! ## Disclaimer ⚠️ WIP
17//!
18//! **Use at your own risk. This crate has not yet been reviewed by independent Rust and Bitcoin security professionals.**
19
20#[cfg(not(any(feature = "directory", feature = "v1", feature = "v2")))]
21compile_error!("At least one of the features ['directory', 'v1', 'v2'] must be enabled");
22
23#[cfg(any(feature = "v2", feature = "directory"))]
24pub(crate) mod bech32;
25#[cfg(feature = "directory")]
26#[cfg_attr(docsrs, doc(cfg(feature = "directory")))]
27pub mod directory;
28
29#[cfg(feature = "_core")]
30pub(crate) mod core;
31#[cfg(feature = "_core")]
32pub use crate::core::*;