Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Zaru Core is a Rust-based transaction processing engine designed to model secure, deterministic state transitions in distributed systems.
The project explores how financial-grade systems can enforce:
- Transaction integrity
- Cryptographic authenticity
- Safe state evolution
- Fault-tolerant processing
Built with Tokio for async execution and ed25519 for cryptographic verification, Zaru Core demonstrates how to design systems that remain predictable, verifiable, and resilient under load.
Fintech System Alignment
This project reflects core principles used in payment platforms:
Idempotent transaction flows (preventing duplicate execution) Deterministic processing (consistent outcomes under concurrency) Ledger-style state management Verification-first architecture (reject invalid transactions early)
These patterns are critical in high-volume payment systems where correctness and reliability are non-negotiable.
Zaru Core
A secure, type-safe payment model engine with transaction state machine and cryptographic verification.
Features
- ✅ Type-safe Amount handling - Prevent invalid amounts at compile time
- ✅ Transaction State Machine - Unsigned → Signed → Verified
- ✅ ED25519 Cryptographic Verification - Secure transaction signing
- ✅ Wallet Abstraction - Support for Bank and Crypto wallets
- ✅ Python Bindings - Use your payment engine from Python
- ✅ Async Support - Built with Tokio
- ✅ No-Std Compatible - Works in embedded environments
- ✅ Serde Support - Serialize/Deserialize transactions
Installation
Rust
[]
= "0.1.0"
{Amount, Transaction, TxId, WalletId, Keypair};
// Create wallets
= WalletId::from("bank_account_123");
= WalletId::from_crypto("0xabc123");
// Create amount
= Amount::new(1000).unwrap();
// Create transaction
= Transaction::<Unsigned>::new(
),
);
// Sign and verify
= Keypair::generate();
= tx.sign(&keypair);
= signed.verify().unwrap();
verified.id.0, "txn_001");
WalletId, Amount
= PaymentEngine()
# Create wallets
= engine.create_wallet("bank", "Bank of America")
= engine.create_wallet("crypto", "0x1234567890abcdef")
# Create transaction
= engine.create_amount(1000)
= engine.create_transaction(
)
# Verify
)
[] --sign()--> [Signed] --verify()--> [Verified]
* Amount: Safe monetary vlaues with overflow protection
* Transaction: Generic transaction with state markers
* WalletId: Unified wallet abstraction
* CryptoVerifier: ED25519 signature verification
# Generate a keypair
= generate_keypair()
# Create wallet from public key
= WalletId.from_crypto(public_key)
# Create and verify transactions
= engine.create_transaction(...)
= engine.verify_transaction(tx)
# Build the Rust library
# Build Python bindings
Please see CONTRIBUTING.md for details.
LICENSE-MIT)
Version 2.0 (LICENSE-APACHE)
座る) means "to sit" in Japanese, representing the stability and reliability of a financial system that "sits" securely on cryptographic foundations.
□
□
□
□
□
□
New feature
Bug fix
Documentation
Tests
Maintenance
Code refactoring
release v0.1.0
cargo publish
maturin publish