A high-performance, immutable financial transaction database built with Rust.
- Immutable Transactions: All records are append-only, ensuring data integrity
- High Performance: Built with Rust for optimal performance and memory safety
- Fault Tolerance: Resilient to failures with automatic recovery
- Scalable: Container-friendly architecture supporting horizontal scaling
- API-First: Low-latency HTTP API with high throughput
- TypeScript Client: First-class TypeScript support via official client library
- Security Focused: Implements financial industry security best practices
pennydb/
├── src/
│ ├── core/ # Core database engine
│ ├── api/ # HTTP API server
│ ├── storage/ # Storage and persistence layer
│ └── replication/ # Distributed replication system
├── clients/
│ └── typescript/ # Official TypeScript client
├── docs/ # Documentation
├── tests/
│ ├── integration/ # Integration tests
│ └── unit/ # Unit tests
└── examples/ # Usage examples
- Rust 1.70 or higher
- Node.js 18+ (for TypeScript client)
- Docker (optional, for containerized deployment)
- Clone the repository:
git clone https://github.com/yourusername/pennydb.git
cd pennydb- Build the project:
cargo build --release- Run tests:
cargo testcargo run --releaseimport { PennyDB } from '@pennydb/client';
const db = new PennyDB('penny://localhost:3000');
// Insert a transaction
await db.transactions.insert({
amount: 100.50,
currency: 'USD',
description: 'Payment for services',
timestamp: new Date()
});API documentation is available at /docs when running the server.
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under the MIT License - see the LICENSE file for details.
For security concerns, please email [email protected]