68 lines
2.9 KiB
Org Mode
68 lines
2.9 KiB
Org Mode
---
|
|
title: Repo Organization
|
|
type: reference
|
|
tags: :passepartout:architecture:infrastructure:
|
|
created: 2026-05-28
|
|
---
|
|
|
|
← Architecture index
|
|
|
|
# Repo Organization
|
|
|
|
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
|
|
|
|
:PROPERTIES:
|
|
:CREATED: [2026-05-11 Mon]
|
|
:ID: af9ce196-24a5-4035-bc02-83ddd60c1b09
|
|
:END: |