11 releases
2.0.4-beta | Dec 2, 2024 |
---|---|
2.0.3-beta | Nov 1, 2024 |
2.0.2-beta | Oct 15, 2024 |
2.0.0-beta.2 | Sep 24, 2024 |
0.1.1-beta | Aug 28, 2024 |
#962 in Magic Beans
149 downloads per month
12KB
118 lines
Rust L402 Protocol🦀⚡
Rust L402 client module to consume L402 endpoints.
⚠️Beta version
⚠️While this code hapanned many tests, it is still beta-quality experimental software. Use at your own risk. Independent audit is welcome.
About L402 Client
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
Features
- 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.
Getting Started
Prerequisites
- Rust version 1.80 or higher
- Access to an L402 compliant payment gateway (API)
Installation
To start using the Rust L402 SDK, add it to your Cargo.toml
:
[dependencies]
rust_l402 = "2.0.4-beta"
Example Usage
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.
Quick Start
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());
}
Detailed Usage
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.
Dependencies
~28–42MB
~721K SLoC