Rust L402 client module to consume L402 endpoints.
rust_l402
is a comprehensive Rust crate designed to simplify the integration and handling of L402 protocol payments within the Lightning Network ecosystem. This SDK offers convenient abstractions for wallet interactions, invoice payments, and token management, making it an essential tool for developers working on Rust-based applications requiring L402 API access.
Learn more about L402 and L402 Protocol by Lightning Labs
- L402 Client: Composable L402 HTTP client to handle L402 API requests using Rust's
reqwest
library. - Wallet Interface: Facilitates invoice payments through various wallet implementations, starting with
LND
support. - Token Store Interface: Manages and stores L402 tokens, allowing for efficient retrieval based on URL, host, and path with support for closest match searching.
- Proxy: Provides a proxy service to handle L402 API requests, allowing for seamless integration with various L402-compliant payment gateways.
- Nostr: Integrates with the Nostr protocol for secure and decentralized communication and
NWC
wallet support. - NWC Wallet: Supports the NWC (Nostr Wallet Connect) protocol for secure and decentralized communication and wallet management.
- Paywall: Enables the creation of paywalls for content access, supporting both L402 and Nostr-based paywalls.
- Rust version 1.80 or higher
- Access to an L402 compliant payment gateway (API)
To start using the Rust L402 SDK, add it to your Cargo.toml
:
[dependencies]
rust_l402 = "2.0.3-beta"
This example demonstrates how to use the L402 client with the LND wallet to make a request to the rnd.ln.sulu.sh/randomnumber
API or via FewSats, which returns a random number.
use rust_l402::L402Client;
fn main() {
// Initialize the wallet and client
let client = L402Client::new(wallet);
// Make a request to the API
let response = client.get("https://rnd.ln.sulu.sh/randomnumber").send().unwrap();
// Print the response
println!("Response: {}", response.text().unwrap());
}
use rust_l402::{L402Client, L402Wallet};
fn main() {
// Initialize the wallet and client
let wallet = L402Wallet::new(wallet_type);
let client = L402Client::new(wallet);
// Make a request to the API
let response = client.get("https://rnd.ln.sulu.sh/randomnumber").send().unwrap();
// Print the response
println!("Response: {}", response.text().unwrap());
}
This example provides a quick overview of how to utilize the rust_l402
crate for making payments and handling L402 API requests in a Rust-based application.