Rust-native, API-driven secrets manager planned as a secure Vault/OpenBao alternative.
Memory-safe by design. Auditable by default. Ready for rootless containers.
Lykilheim is a planned from-scratch Rust secrets manager inspired by the operational model of HashiCorp Vault and OpenBao. The target is a fully API-driven vault with encrypted storage, fail-closed audit behavior, token and lease management, policy enforcement, rootless Wolfi containers, and a clear path toward safe extension through native adapters and sandboxed Wasm plugins.
Current status: 0.1.0 foundation work. The repository has the first Rust
crate, governance, security policy, release notes, a feature-parity audit,
versioned implementation plan, API-shape docs, and rootless container
placeholders.
Lykilheim is licensed under the European Union Public Licence 1.2.
| Capability | Status | Notes |
|---|---|---|
| Version plan | Present | Granular release ladder from 0.1.0 through 0.141.0, followed by 1.0.0, with STOP gates before every release. |
| Release notes | Present | One Fluxheim-style release-note file per planned release. |
| Feature parity audit | Present | Vault/OpenBao coverage tracked as 1.0, preview, post-1.0, research, or intentionally different. |
| Security policy | Present | Covers disclosure, dependency policy, crypto posture, and release evidence. |
| GitHub metadata | Present | Contributing guide, PR template, issue template, Dependabot, CODEOWNERS, and CI bootstrap. |
| Rust toolchain | Present | Rust 1.97.1 pinned in rust-toolchain.toml. |
| Rust crate | Present | Foundation modules for API, config, errors, audit, crypto, storage, and tests. |
| Bootstrap checks | Present | scripts/checks.sh validates metadata, docs, formatting, clippy, and tests. |
| Capability | Status | Target |
|---|---|---|
| API-driven init, seal, unseal, health, and version | Planned | 1.0.0 |
| Encrypted storage barrier | Planned | 1.0.0 |
| Shamir unseal, rekey, and key rotation | Planned | 1.0.0 |
| Audit devices with fail-closed behavior | Planned | 1.0.0 |
| Token engine, leases, renewal, and revocation | Planned | 1.0.0 |
| Policy engine and capabilities APIs | Planned | 1.0.0 |
| Identity, aliases, groups, and namespaces base | Planned | 1.0.0 |
| KV v2, cubbyhole, and response wrapping | Planned | 1.0.0 |
| AppRole and userpass baseline auth | Planned | 1.0.0 |
| Transit baseline and PKI baseline | Planned | 1.0.0 |
| Backup/restore and storage migrations | Planned | 1.0.0 |
| Standalone binary and rootless Wolfi container | Planned | 1.0.0 |
| Capability | Status | Target |
|---|---|---|
| Adapter conformance framework | Planned | 0.107.0 |
| Stable Wasm extension platform | Planned | 0.108.0-0.112.0 |
| Secret inventory | Planned | 0.113.0 |
| Policy simulator | Planned | 0.114.0 |
| Dry-run blast-radius mode | Planned | 0.115.0 |
| Local-first developer mode | Planned | 0.116.0 |
| Secret leak intake | Planned | 0.117.0 |
| Rotation readiness scoring | Planned | 0.118.0 |
| Lifecycle webhooks | Planned | 0.119.0 |
| Human approval workflows | Planned | 0.120.0 |
| Break-glass mode | Planned | 0.121.0 |
| Tamper-evident audit bundles | Planned | 0.122.0 |
- Rust first: memory-safe implementation with a pinned stable toolchain.
- API first: every operator workflow should be possible through documented APIs; CLI tooling can wrap APIs but should not be the control plane.
- Security first: fail closed where audit, authorization, cryptography, or storage integrity cannot be proven.
- Documentation first: user-facing features, APIs, configuration, deployment paths, and security behavior are not done until they are documented.
- Rootless ready: standalone binary and rootless Wolfi container operation are first-class release gates.
- Portable binary: the standalone server should work on Linux, macOS, Windows, and BSD-style Unix systems; the hardened Wolfi container remains Linux-only.
- Parity-aware: Vault/OpenBao features are tracked explicitly so missing behavior is scheduled, deferred, or intentionally different.
- Extensible later: native adapters come first; sandboxed Wasm plugins are a later major-version goal after review.
Validate the current bootstrap repository:
scripts/checks.shRead the implementation plan:
sed -n '1,220p' docs/version-plan.mdRead the Vault/OpenBao feature audit:
sed -n '1,220p' docs/feature-parity.mdThe normal local checks currently run:
cargo fmt --all --check
cargo clippy --all-targets -- -D warnings
cargo test
cargo deny check bans licenses sources
cargo audit --db target/advisory-dbcargo-deny and cargo-audit are required for scripts/checks.sh once the
Rust crate exists.
Lykilheim uses small pre-1.0 releases so each security boundary can be reviewed, documented, and pentested independently.
0.1.0is the released repository foundation.0.2.0-0.18.0establish architecture, storage, crypto, and provider boundaries.0.19.0-0.66.0build the barrier, API, audit, policy, identity, auth, and cryptographic engines.0.67.0-0.92.0add recovery, hardened operations, Raft, seals, and replication.0.93.0-0.112.0add native adapters and process-isolated extensions.0.113.0-0.138.0add operator intelligence, specialized integrations, governance, and isolated experimental security.0.139.0-0.141.0qualify portability, documentation, compatibility, and the release candidate.1.0.0is the first stable production release.
See Version Plan for the complete release ladder and STOP gates.
Lykilheim will use provider-specific adapters behind common engine traits. Early adapters should be compiled into the binary behind explicit Cargo features; later adapters may be sandboxed Wasm plugins.
| Adapter family | Initial targets |
|---|---|
| SQL databases | PostgreSQL, MySQL, MariaDB |
| Document databases | MongoDB |
| Multi-model databases | SurrealDB |
| Cache/key-value services | Redis, Valkey |
| Message brokers | RabbitMQ |
| Public cloud providers | AWS, Azure, GCP |
| European/cloud infrastructure providers | Hetzner, DigitalOcean |
| Extensible providers | Custom signed Wasm adapters |
Every adapter must document upstream API calls or statements, minimum privileges, lease behavior, revocation behavior, audit redaction, failure modes, and local smoke coverage where practical.
- Version Plan
- Documentation Index
- Architecture
- API Reference
- Local Development
- Build And Podman
- Release Checklist
- Feature-Parity Audit
- Security Model
- Portability Policy
- Security Policy
- Release Notes
- Contributing
- Pull Request Template
- Issue Template
Planned documentation areas for later implementation releases:
- configuration reference;
- operator guide;
- storage and backup/restore guide;
- audit guide;
- auth, identity, policy, token, lease, KV v2, cubbyhole, wrapping, transit, and PKI guides;
- rootless Podman and Wolfi guide;
- adapter and plugin guides;
- release checklist and release verification guide.
Lykilheim uses or will use:
- pinned Rust stable toolchain;
- GitHub CI and CodeQL default setup;
cargo denyfor license and dependency policy once the crate exists;cargo auditfor advisory checks once the crate exists;- SBOM and checksum evidence for release artifacts;
- rootless Podman smoke tests before container releases;
- explicit STOP gates and pentest/review before every release.
Before publishing or merging security-sensitive changes:
scripts/checks.shBefore cutting the 0.1.0 release candidate:
scripts/release_0_1_gate.sh
LYKILHEIM_RELEASE_PODMAN=1 scripts/release_0_1_gate.shBuild native standalone release artifacts on each target OS:
python3 scripts/build_release_binary.py linux --ref v0.1.0Use macos, bsd, or windows for the matching host. See
docs/release-binaries.md. Native ARM hosts are
supported; use --target only when the build host is prepared for an explicit
Rust target triple. Release artifacts are built only from a matching release
tag and are named like lykilheim-0.1.0-linux-x86_64.tar.gz; use --os-label
for variants such as windows11 or windowsserver2026.
The gate writes evidence to target/release-evidence/0.1.0/. The focused
pentest scope is documented in
docs/pentest-0.1.0.md.
See SECURITY.md for vulnerability reporting and release supply-chain expectations.
Lykilheim is distributed under the European Union Public Licence v1.2.
