Expand description
Lease renewal and TTL budgeting for grafOS.
This crate provides poll-driven lease renewal infrastructure. The core
design is timer-free: callers drive progress by calling
RenewalManager::tick with the current unix timestamp. This makes
the crate compatible with no_std, WASM, and bare-metal environments.
§Core types
| Type | Purpose |
|---|---|
RenewableLease | Trait abstracting lease renewal across resource types |
RenewalPolicy | Configures when to renew (threshold, jitter, backoff) |
Backoff | Deterministic exponential backoff with configurable cap |
RenewalManager | Manages multiple leases and drives renewals via tick() |
§Adapters
Adapters for all grafos-std lease types are provided in the adapter
module: MemLeaseAdapter, BlockLeaseAdapter, CpuLeaseAdapter,
GpuLeaseAdapter, NetLeaseAdapter.
§Quick start
use grafos_leasekit::{RenewalManager, RenewalPolicy};
let mut mgr = RenewalManager::new();
let policy = RenewalPolicy::default();
// Register a lease (id, expiry, policy)
mgr.register(1, 1100, policy);
// Drive renewals — call tick() periodically with current time
let summary = mgr.tick(1080); // 80% through TTL§Feature flags
| Feature | Default | Effect |
|---|---|---|
std | Yes | Enables std in grafos-std |
observe | No | Enables grafos-observe metrics and events |
Re-exports§
pub use adapter::BlockLeaseAdapter;pub use adapter::CpuLeaseAdapter;pub use adapter::GpuLeaseAdapter;pub use adapter::MemLeaseAdapter;pub use adapter::NetLeaseAdapter;
Modules§
- adapter
- Adapters that implement
RenewableLeasefor grafos-std lease types.
Structs§
- Backoff
- Exponential backoff with a configurable cap.
- Renewal
Manager - Callback invoked by the manager to actually perform a renewal.
- Renewal
Policy - Controls when a lease should be renewed and how to handle failures.
- Renewal
Summary - Summary returned by
RenewalManager::tick.
Enums§
- Lease
Status - Lease lifecycle status.
Traits§
- Renewable
Lease - Uniform interface for renewing a lease regardless of resource type.