| Crates.io | frame-presence |
| lib.rs | frame-presence |
| version | 0.2.0 |
| created_at | 2025-12-22 22:15:39.515334+00 |
| updated_at | 2026-01-08 05:35:05.811104+00 |
| description | Session tracking and device fingerprinting for AI systems |
| homepage | |
| repository | https://github.com/Blackfall-Labs/frame-presence |
| max_upload_size | |
| id | 2000373 |
| size | 112,574 |
Track user sessions across devices and enable contextual authentication for AI systems.
Extracted from the Frame microservices architecture.
[dependencies]
sam-session = "0.1.0"
frame-presence depends on:
frame-presence
└── frame-catalog (database)
Used by: frame-mesh (session tracking)
Position in Frame ecosystem:
frame-catalog
└→ frame-presence
└→ frame-mesh
use sam_session::{SessionStore, DeviceRegistry, Session, DeviceType};
use frame_catalog::Database;
// Initialize stores
let db = Database::new("sessions.db")?;
let session_store = SessionStore::new(&db)?;
let device_registry = DeviceRegistry::new("devices.db")?;
// Create session
let session = Session::new(
"user123".to_string(),
"device-1".to_string(),
"instance-1".to_string(),
DeviceType::Desktop
);
session_store.store_session(&session)?;
// Register device
let device_id = device_registry.register_device(
"user123",
"Magnus's Desktop",
"Mozilla/5.0 (X11; Linux x86_64)...",
Some("192.168.1.100"),
)?;
// Check device trust
if device_registry.is_device_trusted("user123", &device_id)? {
println!("Known device - expedited auth");
}
rusqlite (0.31) - Session/device persistenceframe-catalog - Database traitnum_cpus (1.16) - System infohostname (0.4) - Device identificationcargo test # 18 tests passing, 2 doctests ignored
MIT - See LICENSE for details.
Magnus Trent magnus@blackfall.dev