Files
hermes-brain/projects/passepartout/architecture/repo-organization.org
2026-05-29 03:00:48 +00:00

2.9 KiB

— title: Repo Organization type: reference tags: :passepartout:architecture:infrastructure: created: 2026-05-28 —

← Architecture index

Passepartout spans multiple repos across three tiers:

## Tier 1: Core Passepartout

Repo Description Language
passepartout PDS (Personal Data Store) — protocol server, gate orchestration, storage Common Lisp (SBCL)
passepartout-saas SaaS control plane — billing, enterprise dashboard, marketplace listings, usage monitoring Web stack (TBD)
relay Social protocol relay — pub/sub message routing between PDSs Initially sidecar, possibly Lisp when loop generates it

## Tier 2: Client Applications

Repo Description Language
passepartout-app/ios Native iOS client Swift
passepartout-app/android Native Android client Kotlin
hardware-firmware Hardware wallet firmware loop-generated target (small, constrained)

## Tier 3: Extracted Spec Libraries

Each is a published standard implemented as a standalone Common Lisp library. Separated from the PDS early so the core stays lean and the libraries are available to other projects.

Library Spec Dependencies
cl-dag / cl-cid IPLD/Merkle DAG, CID encoding cl-crypto (SHA-256)
cl-did W3C DID specification, did:key method, Ed25519 key management cl-crypto
cl-jose JWE/JWS envelope handling cl-crypto
cl-double-ratchet Signal Double Ratchet algorithm, forward secrecy cl-crypto
cl-bip BIP-32 (HD derivation), BIP-39 (mnemonics), BIP-44 (path scheme) cl-crypto
cl-didcomm DIDComm v2 message packing, forwarding, routing cl-did, cl-jose, cl-double-ratchet

## Sidecar Strategy (Initial Release)

The first release ships spec-compliant behavior via battle-tested C/Rust implementations before native CL libraries mature:

Domain Initial approach Target replacement
DAG/CID storage IPFS HTTP API (sidecar daemon) cl-dag native
Double Ratchet CFFI → libsignal (Signal's C library) cl-double-ratchet
DID operations CFFI → didkit (Spruce, Rust + C bindings) cl-did
DIDComm CFFI → didcomm-rust (DIDComm WG, C bindings) cl-didcomm
BIP derivation Sidecar script or CFFI → libbitcoin cl-bip
JOSE envelopes CFFI → libjose or OpenSSL CMS cl-jose

Each replacement is independent and non-blocking. The gate (Stage 2) can verify sidecar responses against policy while the library is still a black box.

## Key principle

Published specs → separate library. Internal design choices → stay in the PDS repo until a second consumer appears.

→ SaaS Architecture → Stage 1 — Social Protocol