Expand description
Core types, traits, and services for the evault workspace.
evault-core is intentionally backend-agnostic. It defines:
- The domain model: variables, projects, profiles, audit entries.
- The trait contracts that every IO concern must implement, such as
MetadataStore,SecretStore,AuditSink,ManifestIo,Materializer,CodeScanner,ProcessRunner,ClockandIdGenerator. - A few value types for handling secrets safely
(see
crypto::SecretStringandcrypto::MasterKey).
Concrete implementations live in sibling crates such as
evault-store-sqlcipher, evault-store-keyring, evault-store-memory,
evault-manifest, evault-runner, evault-materializer, and
evault-scanner-regex.
§Quick tour
use evault_core::model::{Var, Group, VarKind};
let v = Var::new("DATABASE_URL", Group::User, VarKind::Secret);
assert_eq!(v.name(), "DATABASE_URL");
assert_eq!(v.group(), &Group::User);Modules§
- crypto
- Cryptographic primitives and secret-handling types used across
evault. - error
- Error types for
evault-core. - model
- Domain model: the data the rest of the workspace operates on.
- service
- High-level services composed on top of the
crate::traitscontracts. - traits
- Trait contracts for the IO and infrastructure concerns of
evault.