| Crates.io | rust-transaction-validator |
| lib.rs | rust-transaction-validator |
| version | 2.0.0 |
| created_at | 2025-11-18 05:39:49.333884+00 |
| updated_at | 2025-12-11 08:19:57.51444+00 |
| description | Memory-safe financial transaction validator with ML-based fraud detection, real-time sanctions screening, and ISO 20022 support |
| homepage | |
| repository | https://github.com/guardsarm/rust-transaction-validator |
| max_upload_size | |
| id | 1937925 |
| size | 148,197 |
A memory-safe financial transaction validator for fraud detection and regulatory compliance. Built with Rust to eliminate vulnerabilities in critical financial transaction processing.
Eliminates memory safety vulnerabilities in financial transaction processing. Aligns with 2024 CISA/FBI guidance for memory-safe financial infrastructure.
Add to your Cargo.toml:
[dependencies]
rust-transaction-validator = "0.1.0"
use rust_transaction_validator::{Transaction, TransactionValidator, TransactionType};
use chrono::Utc;
let mut validator = TransactionValidator::new();
let transaction = Transaction {
transaction_id: "TXN-001".to_string(),
transaction_type: TransactionType::Transfer,
amount: 5000.0,
currency: "USD".to_string(),
from_account: Some("ACCT-1234-5678-9012-3456".to_string()),
to_account: Some("ACCT-6789-0123-4567-8901".to_string()),
timestamp: Utc::now(),
user_id: "USER-001".to_string(),
metadata: None,
};
let result = validator.validate(&transaction);
if result.is_approved() {
println!("Transaction approved");
} else {
println!("Transaction rejected: {:?}", result.errors);
}
use rust_transaction_validator::{TransactionValidator, ValidatorConfig};
let config = ValidatorConfig {
max_transaction_amount: 500_000.0,
min_transaction_amount: 1.0,
fraud_threshold: 80,
enable_duplicate_check: true,
enable_aml_check: true,
};
let mut validator = TransactionValidator::with_config(config);
// Validates:
// - Positive amounts
// - Within min/max limits
// - Proper decimal precision
// Validates account format:
// ACCT-XXXX-XXXX-XXXX-XXXX
// Or masked: ****XXXX
Detects suspicious patterns:
let result = validator.validate(&transaction);
println!("Fraud score: {}", result.fraud_score); // 0-100
println!("Warnings: {:?}", result.warnings);
// Checks:
// - Transactions over $10,000 (CTR requirement)
// - Wire transfer source verification
// - PEP/sanctions list screening (in production)
// - Beneficial ownership verification
if result.compliance_checks["AML"] {
println!("AML compliance passed");
}
Enforces business logic:
// Automatically prevents duplicate processing
let result1 = validator.validate(&transaction); // OK
let result2 = validator.validate(&transaction); // Duplicate error
Traditional C/C++ transaction validators are vulnerable to:
This implementation eliminates these vulnerabilities through Rust's ownership system.
// Compile-time prevention of common errors
pub enum TransactionType {
Deposit,
Withdrawal,
Transfer,
Payment,
WireTransfer,
}
// Can't accidentally use wrong type
transaction.transaction_type = TransactionType::Transfer; // ✓ OK
transaction.transaction_type = "Transfer"; // ✗ Compile error
See the examples/ directory:
cargo run --example validate_transactions
cargo test
This validator implements requirements from:
Designed for:
MIT License - See LICENSE file
Tony Chuks Awunor
Contributions welcome! Please open an issue or pull request.
This library provides technical validation tools. Users are responsible for ensuring compliance with all applicable financial regulations in their jurisdiction. Consult legal and compliance professionals for regulatory guidance.
If you use this validator in research or production systems, please cite:
Awunor, T.C. (2024). Rust Transaction Validator: Memory-Safe Financial Transaction Processing.
https://github.com/guardsarm/rust-transaction-validator
Built for financial security. Designed for regulatory compliance. Implemented in Rust.