puncture/README.md

53 lines
1.3 KiB
Markdown

# Puncture (Go)
Go implementation of a puncturable-key system (GGM tree) with:
- primary macOS app/server for key derivation, puncturing, providers, and asset encryption/decryption
- iOS emergency companion app for remote provider-level puncture
## Current architecture
- `goapp/cmd/server`: headless web server (`:9122`)
- `goapp/cmd/desktop`: macOS desktop app (embedded webview + local server)
- `goapp/internal/crypto`: GGM puncturable key manager
- `goapp/internal/app`: provider/key/asset state machine
- `goapp/internal/server`: HTTP API + web UI
- `goapp/ios/EmergencyPuncture`: native iOS app
## Run primary server
```bash
cd goapp
go run ./cmd/server --host 0.0.0.0 --port 9122
```
Open `http://127.0.0.1:9122`.
## Build macOS app + installer
```bash
cd goapp
./packaging/macos/build_dmg.sh
```
Artifacts:
- `goapp/dist/Puncture.app`
- `goapp/dist/Puncture.dmg`
## Persistence
Frontier/puncture/providers/assets are persisted locally and survive restarts.
Default desktop paths:
- assets: `~/Library/Application Support/PunctureGo/assets`
- state: `~/Library/Application Support/PunctureGo/state.json`
## iOS companion
- Xcode project: `goapp/ios/EmergencyPuncture/EmergencyPuncture.xcodeproj`
- iPhone install guide: `goapp/ios/INSTALL_IPHONE.md`
## Legacy Python line
The previous Python implementation is preserved in branch `python-legacy`.