| Crates.io | iwcore |
| lib.rs | iwcore |
| version | 0.1.2 |
| created_at | 2025-12-21 21:56:23.193094+00 |
| updated_at | 2025-12-27 08:45:00.317222+00 |
| description | IntelliWallet Core - Password manager library with AES-256 encryption |
| homepage | https://intelliwallet.io |
| repository | https://github.com/intellisoftalpin/iwcore |
| max_upload_size | |
| id | 1998653 |
| size | 1,389,137 |
IntelliWallet Core - A secure password manager library with AES-256 encryption.
Add to your Cargo.toml:
[dependencies]
iwcore = "0.1"
Or use cargo:
cargo add iwcore
use iwcore::Wallet;
use std::path::Path;
// Create a new wallet
let mut wallet = Wallet::create(Path::new("./my_wallet"), "my_password", "en")?;
// Add an item
let item_id = wallet.add_item("My Email", "document", false, None)?;
// Add fields to the item
wallet.add_field(&item_id, "MAIL", "user@example.com", None)?;
wallet.add_field(&item_id, "PASS", "secret123", None)?;
// Search for items
let results = wallet.search("email")?;
for result in results {
println!("Found: {}", result.item.name);
}
// Close the wallet
wallet.close();
use iwcore::Wallet;
use std::path::Path;
let mut wallet = Wallet::open(Path::new("./my_wallet"))?;
// Unlock with password
if wallet.unlock("my_password")? {
let items = wallet.get_items()?;
for item in items {
println!("{}: {}", item.item_id, item.name);
}
}
wallet.close();
use iwcore::{generate_password, generate_clever_password, PasswordOptions};
// Random password with options
let options = PasswordOptions {
lowercase: true,
uppercase: true,
digits: true,
special: true,
length: 16,
};
let password = generate_password(&options);
// Pattern-based password (A=uppercase, a=lowercase, 0=digit, @=special)
let password = generate_clever_password("Aaaa0000@@");
use iwcore::{Wallet, BackupManager};
use std::path::Path;
let wallet = Wallet::open(Path::new("./my_wallet"))?;
// Create backup (automatically checkpoints WAL for data consistency)
let backup_mgr = BackupManager::new(Path::new("./backups"));
let backup_path = backup_mgr.create_backup(wallet.database()?, true)?;
// List backups
let backups = backup_mgr.list_backups()?;
// Restore backup
backup_mgr.restore_backup(&backup_path, Path::new("./restored.dat"))?;
iwcore supports 19 built-in field types:
| Code | Name | Value Type |
|---|---|---|
| PASS | Password | password |
| NOTE | Note | text |
| LINK | Link | link |
| ACNT | Account | text |
| CARD | Card | text |
| NAME | Name | text |
| PHON | Phone | phone |
| PINC | PIN | text |
| USER | Username | text |
| OLDP | Old Password | password |
| DATE | Date | date |
| TIME | Time | time |
| EXPD | Expiry Date | date |
| SNUM | Serial Number | text |
| ADDR | Address | text |
| SQUE | Secret Question | text |
| SANS | Secret Answer | text |
| 2FAC | 2FA | text |
This project is licensed under the MIT License - see the LICENSE file for details.