5 releases (2 stable)
Uses new Rust 2024
| 1.1.0 | Jul 10, 2025 |
|---|---|
| 1.0.0 | Jul 9, 2025 |
| 0.3.0 | May 29, 2025 |
| 0.2.0 | May 25, 2025 |
| 0.1.0 | May 25, 2025 |
#622 in Cryptography
321 downloads per month
20KB
209 lines
Crypt-ro - Blazing Fast Matrix-Based Cryptographic Library
A high-performance Rust library implementing lightning-fast matrix-based cryptographic operations that outperform traditional algorithms like RSA in most use cases.
Why Choose Crypt-ro?
ð 10-100x faster than RSA for typical payloads
ð Secure by design with multiple protection layers
⥠Near-native performance thanks to Rust optimization
âĻ Text-friendly URL-safe base64 encoding
ð§Đ Support for both raw bytes and text operations
ð Perfect for high-throughput applications like:
- Real-time messaging
- Database encryption
- Game networking
- IoT device communication
Features
- Lightning-fast operations optimized
- Constant-time operations resistent to timing attacks
- Minimal overhead with efficient memory usage
- Thread-safe design for parallel processing
Installation
Add to your Cargo.toml:
[dependencies]
crypt-ro = "1.0.0"
Usage Example
use crypt_ro::Cryptor;
fn process_chat_messages() {
let cryptor = Cryptor::new();
let key = "session-key-abc123";
// Encrypt 1000 messages in milliseconds
let messages: Vec<String> = /* ... */;
let encrypted: Vec<_> = messages.iter()
.map(|msg| cryptor.encrypt_text(msg, key).unwrap())
.collect();
// Decrypt just as fast
let decrypted: Vec<_> = encrypted.iter()
.map(|cipher| cryptor.decrypt_text(cipher, key).unwrap())
.collect();
}
Basic Text Encryption
use crypt_ro::Cryptor;
fn test(){
let cryptor = Cryptor::new();
let secret = "My confidential message";
let key = "strong-password-123";
// Encrypt
let encrypted = cryptor.encrypt_text(secret, key).unwrap();
// Decrypt
let decrypted = cryptor.decrypt_text(&encrypted, key).unwrap();
assert_eq!(decrypted, secret);
}
Binary Data Encryption
use crypt_ro::Cryptor;
fn test(){
let cryptor = Cryptor::new();
let data = b"\x01\x02\x03binary\xff\xfe\xfd";
let key = "encryption-key";
// Encrypt raw bytes
let encrypted = cryptor.encrypt(data, key).unwrap();
// Decrypt
let decrypted = cryptor.decrypt(&encrypted, key).unwrap();
assert_eq!(decrypted, data);
}
Custom Matrix Size
use crypt_ro::Cryptor;
fn test(){
let mut cryptor = Cryptor::new();
cryptor.set_matrix(64); // Use 64-byte blocks
let encrypted = cryptor.encrypt_text("data", "key").unwrap();
let decrypted = cryptor.decrypt_text(&encrypted, "key").unwrap();
assert_eq!(decrypted, "data");
}
When to Use
â
High-volume encryption (logging, metrics, telemetry)
â
Low-latency requirements (real-time systems)
â
Resource-constrained environments
â
Temporary data protection (session tokens, cache)
Performance
Crypt-ro delivers blazing-fast encryption/decryption speeds, competitive with industry-standard algorithms:
| Algorithm | Operation | 50B Data | Comparison |
|---|---|---|---|
| Cryptor | Encrypt | 343-350 ns | Reference |
| Cryptor | Decrypt | 369-370 ns | Reference |
| AES-256-GCM | Encrypt | 460-461 ns | ~1.3x slower |
| AES-256-GCM | Decrypt | 459-460 ns | ~1.3x slower |
| RSA-2048 | Encrypt | 172.26-172.29 Ξs | ~500x slower |
| RSA-2048 | Decrypt | 1.424-1.426 ms | ~4000x slower |
Key Advantages:
- ⥠Sub-microsecond operations for small data
- ðĨ Decryption is 15-20% faster than AES-256-GCM
- ð 3000x faster than RSA for decryption
Security Considerations
While extremely fast, Crypt-ro uses:
- Random initialization vectors
- Multiple transformation layers
- Defense in depth strategy Security Notes
- This library uses a custom encryption algorithm - not peer-reviewed
- Not recommended for highly sensitive data
- Always use strong, complex keys
Contributing
Contributions are welcome! Please open an issue or pull request on GitHub.
License
Dual-licensed under MIT or Apache 2.0 at your option.
Dependencies
~215KB