{"id":50984018,"url":"https://github.com/valkyoth/skrifheim","last_synced_at":"2026-06-19T17:04:16.027Z","repository":{"id":363635613,"uuid":"1264092909","full_name":"valkyoth/skrifheim","owner":"valkyoth","description":"Skrifheim is a Rust world database for signed, versioned, policy-bound facts, branchable worlds, causal provenance, tamper-evident storage, and security-aware query planning.","archived":false,"fork":false,"pushed_at":"2026-06-17T18:21:49.000Z","size":904,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-17T19:28:18.285Z","etag":null,"topics":["append-only","casual-database","content-addressed-storage","database","eupl-1-2","hacktoberfest","mvcc","podman","policy-engine","provenance","rust","rust-lang","security","tamper-evident","world-database","zero-trust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/valkyoth.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":[]}},"created_at":"2026-06-09T14:52:55.000Z","updated_at":"2026-06-17T18:24:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/valkyoth/skrifheim","commit_stats":null,"previous_names":["valkyoth/skrifheim"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/valkyoth/skrifheim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Fskrifheim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Fskrifheim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Fskrifheim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Fskrifheim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/valkyoth","download_url":"https://codeload.github.com/valkyoth/skrifheim/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/valkyoth%2Fskrifheim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34540570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["append-only","casual-database","content-addressed-storage","database","eupl-1-2","hacktoberfest","mvcc","podman","policy-engine","provenance","rust","rust-lang","security","tamper-evident","world-database","zero-trust"],"created_at":"2026-06-19T17:04:14.869Z","updated_at":"2026-06-19T17:04:16.021Z","avatar_url":"https://github.com/valkyoth.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cb\u003eSkrifheim is a Rust world database for signed, versioned, policy-bound facts, branchable worlds, causal provenance, tamper-evident storage, and security-aware query planning.\u003c/b\u003e\u003cbr\u003e\n  Built for causal provenance, tamper-evident history, strict release gates, and rootless containers.\n\u003c/p\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"docs/IMPLEMENTATION_PLAN.md\"\u003eImplementation Plan\u003c/a\u003e\n  ·\n  \u003ca href=\"docs/VERSION_PLAN.md\"\u003eVersion Plan\u003c/a\u003e\n  ·\n  \u003ca href=\"docs/security-controls.md\"\u003eSecurity Controls\u003c/a\u003e\n  ·\n  \u003ca href=\"docs/hyve-cluster-and-compliance-roadmap.md\"\u003eCompliance And Hyve Roadmap\u003c/a\u003e\n  ·\n  \u003ca href=\"SECURITY.md\"\u003eSecurity\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./.github/images/skrifheim.webp\" alt=\"skrifheim overview\"\u003e\n\u003c/p\u003e\n\n# skrifheim\n\n`skrifheim` is a world database.\n\nThe 1.0 target is a serious production-ready causal world-state database for\napplications that need signed, versioned, policy-bound facts; branchable worlds;\nprovenance; classification-aware planning; tamper-evident storage; and CMS\nintegration through typed facts, atomic releases, sanitized projections, and AI\nartifacts with provenance.\n\nThe project is currently at the `v0.14.0` implementation stop, with pentest\npasses resolved and GitHub verification pending. It is not a usable database\nengine.\n\n`skrifheim` is licensed under the European Union Public Licence 1.2.\n\n## What Works Today\n\n### Repository Foundation\n\n| Capability | Status | Notes |\n| --- | --- | --- |\n| Rust workspace | Active | Edition 2024, resolver `3`, Rust stable `1.96.0` pinned. |\n| Core crate split | Active | Focused crates for core types, facts, worlds, policy, crypto envelopes, storage metadata, query planning, and CLI orchestration. |\n| `no_std` core policy | Active | Library crates under `crates/` use `#![no_std]` and `#![forbid(unsafe_code)]`. |\n| Dependency policy | Active | `cargo deny` policy denies wildcard external dependencies and unknown sources. |\n| Security reporting | Active | Private-first vulnerability process in `SECURITY.md`. |\n| Release notes | Active | `release-notes/RELEASE_NOTES_0.14.0.md` records scope, verification, and non-claims. |\n\n### Initial Models\n\n| Capability | Status | Notes |\n| --- | --- | --- |\n| Core IDs and labels | Scaffolded | Tenant, world, fact, entity, predicate, policy, transaction, actor, identity, source, timestamp, and classification types. |\n| Fact builder and validation | Scaffolded | Facts carry valid time, evidence, confidence, policy, labels, causal links, and signature sets. |\n| World overlays | Scaffolded | Worlds support deterministic metadata identity, parent pointers, depth, added facts, hidden facts, fork, diff, promotion preflight, rollback preflight, and conflict categories. |\n| Authority-aware policy context | Scaffolded | Subject, device, and workload context constrain clearance, compartments, releasability, output classification, and aggregate proof metadata. |\n| Query-result classification | Scaffolded | Allowed plans propagate output classification, sovereignty, PII-derived state, AI-processing eligibility, and confidence-threshold policy hooks. |\n| Index and projection encryption policy | Scaffolded | Secondary, graph, search, vector, columnar, cache, and compaction projection surfaces require projection encryption domains and reject incompatible domain mixing. |\n| Memory secrecy boundary | Scaffolded | Secret material enters crypto APIs through bounded non-clone redacted `SecretBytes` wrappers backed by admitted `sanitization` clear-on-drop storage. |\n| Identity and audit events | Scaffolded | Typed identities, attestation evidence references, break-glass event shape, signed/encrypted audit-log metadata, and actor-attribution checks. |\n| Crypto-agile envelopes | Scaffolded | Algorithm IDs, crypto epochs, bounded signature sets, key hierarchy metadata, key lifecycle metadata, and encryption-domain metadata exist without locking the database to one permanent algorithm. |\n| Storage metadata | Scaffolded | Immutable segment headers validate magic, version, transaction range, and body length; WAL frame headers validate fixed append-only encrypted-frame metadata, non-zero CRC presence, and expected-domain binding before file I/O exists. |\n| Query planning primitives | Scaffolded | Query requests become policy decision plans for early read, causality, simulation, and context intents. |\n\n### Tooling And Verification\n\n| Capability | Status | Notes |\n| --- | --- | --- |\n| Local gate | Active | `scripts/checks.sh` runs formatting, shell syntax, doc links, release metadata, engineering policy, modularity, security policy, clippy, and tests. |\n| `v0.14.0` release gate | Active | `scripts/release_0_14_gate.sh` runs local checks, dependency policy, RustSec audit, CLI startup, and rootless Podman smoke. |\n| Rootless Podman | Active | `Containerfile` builds and runs the current CLI in a non-root runtime image. |\n| Pentest stop rule | Active | Every version has a clean implementation stop before tagging. Root `PENTEST.md` is temporary findings input and must be removed after resolution. |\n| Modularity gate | Active | Non-generated Rust files over 500 lines fail the local gate. |\n| Engineering gate | Active | Core libraries must stay `no_std`, forbid unsafe code, and avoid `std` imports. |\n\n### Planned Or Not Yet\n\n| Capability | Status | Target |\n| --- | --- | --- |\n| WAL writer and recovery | Planned | `v0.15.0` through `v0.16.0`. |\n| Quantum-aware digest policy | Planned | SHA-3/SHAKE digest-strength profiles and full-width world/content/manifest digests before compact IDs become durable storage authority. |\n| Immutable segment persistence | Planned | `v0.17.0` through `v0.20.0`. |\n| Strict serializable transactions | Planned | `v0.21.0` through `v0.23.0`. |\n| Native query parser and execution | Planned | `v0.25.0` through `v0.28.0`. |\n| Rebuildable projections | Planned | `v0.29.0` through `v0.32.0`. |\n| Crypto-agile manifest signatures | Planned | `v0.33.0`. |\n| Audit proofs and backup/restore | Planned | `v0.34.0` through `v0.36.0`. |\n| CMS release primitives | Planned | `v0.39.0` through `v0.40.0`. |\n| AI artifact provenance | Planned | `v0.41.0`. |\n| Distinctive security and truth features | Planned | Causal blast-radius invalidation, signed declassification proofs, AI derivation cones, and propagated confidence with mandatory access control are now tracked in the implementation and version plans. |\n| Local-first worlds and mission capsules | Planned | `v0.42.0` through `v0.43.0`. |\n| Fuzz/property baseline, operations, and hardening | Planned | `v0.44.0` through `v0.51.0`. |\n| Standalone legal/compliance passports and placement foundations | Planned | `v0.52.0` through `v0.55.0`. |\n| Production release candidate | Planned | `v0.56.0`. |\n| Hyve multi-cell cluster fabric | Planned | `v1.1.0` and later. |\n\n## Why skrifheim\n\n- **Worlds instead of databases**: production, draft, simulation, audit,\n  user-local, and mission worlds are first-class branchable states.\n- **Facts instead of rows**: canonical state is signed, versioned, timed,\n  evidence-bound, and policy-bound.\n- **Security-aware planning**: classification, compartments, releasability,\n  redaction, and rejection are database planning concerns, not application-side\n  decoration.\n- **Compliance-aware direction**: future instance, data, and operation\n  passports let standalone reads, CMS access, exports, indexing, backup, AI\n  processing, placement, replication, and failover respect signed law and\n  compliance packs.\n- **Tamper-evident direction**: WAL, immutable segments, manifests, signatures,\n  and audit proofs are planned as the storage foundation.\n- **AI is not truth**: AI output is planned as derived artifact state with\n  provenance and review, never silent authoritative mutation.\n- **Truth has blast radius**: causal links, declassification proofs, AI\n  derivation cones, and propagated confidence are planned as first-class\n  security controls.\n- **Strict engineering posture**: core crates are `no_std`, unsafe code is\n  forbidden, external crates require admission, and release stops require\n  pentest review.\n\n## Quick Start\n\nBuild the workspace:\n\n```bash\ncargo build --workspace\n```\n\nRun the current CLI:\n\n```bash\ncargo run -p skrifheim\n```\n\nExpected output:\n\n```text\nskrifheim 0.14.0\n```\n\nRun the normal local checks:\n\n```bash\nscripts/checks.sh\n```\n\nRun the `v0.14.0` release gate:\n\n```bash\nscripts/release_0_14_gate.sh\n```\n\nSkip the rootless Podman part only when the host cannot run containers:\n\n```bash\nSKRIFHEIM_SKIP_PODMAN=1 scripts/release_0_14_gate.sh\n```\n\n## Rootless Podman\n\nBuild and run the local container:\n\n```bash\nscripts/podman_smoke.sh\n```\n\nThe current container only starts the CLI and prints build identity. Durable\ndatabase operation begins in later storage and runtime milestones.\n\n## Workspace\n\n| Crate | Purpose |\n| --- | --- |\n| `skrifheim` | Main crate and CLI entry point. |\n| `skrifheim-core` | IDs, timestamps, labels, values, and shared errors. |\n| `skrifheim-fact` | Signed policy-bound fact model. |\n| `skrifheim-world` | World branch and overlay model. |\n| `skrifheim-policy` | Classification and planner decision model. |\n| `skrifheim-crypto` | Crypto-agile algorithm and signature envelopes. |\n| `skrifheim-audit` | Identity, attestation evidence reference, and audit-event metadata. |\n| `skrifheim-storage` | Storage format and tamper-evident metadata model. |\n| `skrifheim-query` | Query planning primitives. |\n| `xtask` | Project automation helper. |\n\n## Security Posture\n\n`skrifheim` is designed around military-security constraints:\n\n- no god-mode database assumption,\n- no unsafe code in core crates,\n- no external dependencies without admission,\n- no `std` in core library crates,\n- no AI output as authoritative truth,\n- no release tag without a clean stop and pentest resolution,\n- no legal/compliance-sensitive access, derivation, backup, export, or movement\n  without signed policy inputs and audit proof,\n- no root `PENTEST.md` committed.\n\nSee [Engineering Policy](docs/engineering-policy.md), [Unsafe Policy](docs/unsafe-policy.md),\n[Threat Model](docs/threat-model.md), and [Security Controls](docs/security-controls.md).\n\n## Release Process\n\nEach version has a clean implementation stop. When the version criteria are\ndone, the maintainer runs a pentest for the exact commit and writes temporary\nfindings to root `PENTEST.md`. Findings are fixed, `PENTEST.md` is removed, and\nthe gates are rerun before any permanent pentest report or tag.\n\nTags are created only when explicitly requested.\n\n## Documentation\n\n- [Implementation Plan](docs/IMPLEMENTATION_PLAN.md)\n- [Version Plan](docs/VERSION_PLAN.md)\n- [Engineering Policy](docs/engineering-policy.md)\n- [Encryption Architecture](docs/encryption-architecture.md)\n- [Memory Secrecy](docs/memory-secrecy.md)\n- [Hyve Cluster And Compliance Roadmap](docs/hyve-cluster-and-compliance-roadmap.md)\n- [Security Controls](docs/security-controls.md)\n- [Threat Model](docs/threat-model.md)\n- [CMS 1.0 Target](docs/cms-1-0-target.md)\n- [Toolchain Policy](docs/toolchain-policy.md)\n- [Release Runbook](docs/release-runbook.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalkyoth%2Fskrifheim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvalkyoth%2Fskrifheim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvalkyoth%2Fskrifheim/lists"}