Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> :toc: macro :icons: font :source-highlighter: rouge :experimental: :url-github: https://github.com/hyperpolymath/januskey :url-gitlab: https://gitlab.com/hyperpolymath/januskey :url-bitbucket: https://bitbucket.org/hyperpolymath/januskey :url-codeberg: https://codeberg.org/hyperpolymath/januskey
Reversible File Operations (formal proofs pending) Through Maximal Principle Reduction
JanusKey is a file operation utility suite that pursues complete reversibility through architectural design rather than logging or backups. Unlike traditional backup systems that restore from external state, JanusKey operations carry sufficient information for inversion — the goal is to make data loss architecturally impossible (formal proofs pending).
-
Reversible by design - Every operation carries inversion metadata (formal proofs pending)
-
Instant Rollback - Undo changes in milliseconds
-
Data loss impossible by construction - the architectural goal the pending proofs are to establish
-
Complete Audit Trail - Every change tracked automatically
-
Transaction Support - Group operations, commit/rollback together
-
Content-Addressed Storage - SHA256 hashing with deduplication
# Build from source (requires Rust)
cd src/januskey
cargo build --release
# Initialize JanusKey in your project
jk init
# Delete files (reversible)
jk delete *.log
# Undo the delete
jk undo
# Transactions for batch operations
jk begin
jk delete temp*.txt
jk modify "s/DEBUG/INFO/g" config.yaml
jk preview # Review changes
jk commit # Or: jk rollback| Command | Description |
|---|---|
jk init |
Initialize JanusKey in current directory |
jk delete <files> |
Delete files (reversible) |
jk modify <pattern> <files> |
Modify files with sed-like syntax |
jk move <src> <dst> |
Move/rename files |
jk copy <src> <dst> |
Copy files |
jk undo [--count N] |
Undo last operation(s) |
jk begin [name] |
Start a transaction |
jk commit |
Commit current transaction |
jk rollback |
Rollback current transaction |
jk preview |
Preview pending changes |
jk history |
Show operation history |
jk status |
Show current status |
JanusKey implements Maximal Principle Reduction (MPR), a security methodology where vulnerability elimination occurs by construction rather than verification.
+----------------------------+
| JanusKey CLI | <-- jk delete, jk modify, jk move
+----------------------------+
| Operation Layer | <-- Generates inverse metadata
+----------------------------+
| Transaction Manager | <-- Groups ops, commit/rollback
+----------------------------+
| Metadata Store | <-- Append-only operation log
+----------------------------+
| Content-Addressed Storage | <-- SHA256, deduplication
+----------------------------+
Every operation stores sufficient metadata for perfect inversion:
-
Delete: Stores full content + metadata for restoration
-
Modify: Stores original content hash for rollback
-
Move: Stores original path for unmove
-
Copy: Destination path for deletion
# Clone the repository
git clone {url-github}
cd januskey/src/januskey
# Build release binary
cargo build --release
# Install to PATH
cargo install --path .| Platform | URL |
|---|---|
| GitHub (primary) | {url-github} |
| GitLab | {url-gitlab} |
| Bitbucket | {url-bitbucket} |
| Codeberg | {url-codeberg} |
This project is licensed under the Mozilla Public License, v. 2.0. See
the LICENSE file for details.
SPDX-License-Identifier: CC-BY-SA-4.0
See CONTRIBUTING.
JanusKey is based on research into reversible computing (formal proofs
are a target, not yet complete) and Maximal Principle Reduction. See the
white paper in docs/ for formal proofs and theoretical foundations.
-
Domain: software-development
-
Framework: RSR (Rhodium Standard Repository)
-
Language: Rust
-
Dublin Core: .well-known/dc.xml
See TOPOLOGY for a visual architecture map and completion dashboard.