Relationship to the Canto app
The Canto app lives at pboueke.github.io/canto
(source). Canto (the app) is GPLv3-licensed.
canto-data (this library) is MIT-licensed to enable data portability: anyone
can build tools that interoperate with Canto journals without being bound by the
app’s copyleft license.
canto-data (MIT)└── src/ ├── types.ts # All TypeScript interfaces ├── validation.ts # Type guards and structural validators ├── version.ts # Schema version constant and semver utils ├── migration.ts # Forward-only migration runner ├── migrations/ # Migration registry └── format.ts # Export manifest and ZIP format utilitiesWhat canto-data owns
Section titled “What canto-data owns”- All journal data types (Journal, Page, Attachment, Comment, and related structures)
- Runtime validation and type guards
- Schema versioning and migration framework
- Export format specification (manifest structure and attachment naming)
What it does not include
Section titled “What it does not include”- Encryption and decryption
- Attachment storage, chunk I/O, and byte reassembly
- Sync integrations and remote uploads
- UI components
Those pieces live in the Canto app — the app also documents its encryption model in SECURITY.md.
The library is MIT-licensed; see LICENSE. The Canto app is a separate GPLv3 project, so the two licenses stay independent: this package ships no app code.