15 lines
1.5 KiB
Markdown
15 lines
1.5 KiB
Markdown
|
|
# halkyon_content
|
||
|
|
|
||
|
|
What seals and opens a person's synced content, in pure Dart (Halkyon's ADR 0044, D49), so
|
||
|
|
that Learn's agent, which runs without Flutter, seals and opens rows as the apps do. The apps
|
||
|
|
take it through halkyon_app, which exports `halkyon_content.dart`, and rich text through
|
||
|
|
halkyon_editor, which exports `rich_text.dart`.
|
||
|
|
|
||
|
|
| Library | What it holds |
|
||
|
|
|---|---|
|
||
|
|
| `halkyon_content.dart` | The envelope every synced row is sealed in (`PayloadEnvelope` on a `ContentCipher`, `SodiumContentCipher`; ADR 0019), a file sealed alike (`SealedFile`, HLKF); the account's unlocked keys (`UnlockedAccountKeys`) and new ones for an account without a password (`newAccountKeys`, an agent's); shared spaces through the module (`SharedSpaceGateway`) and their keys, sealed to each member and held to the public keys first seen (`SharedKeys`, `KeyPins`, ADR 0044, D3, D18, D20); people's files on the device and the module's store (`FileCache`, `DirectoryFileCache`, `FileServerGateway`; ADR 0043) |
|
||
|
|
| `rich_text.dart` | `RichContent`, the editor's document JSON, and the names of its blocks (`content_blocks.dart`), which halkyon_editor edits and shows |
|
||
|
|
| `testing.dart` | Fakes: `FakeContentCipher`, `FakeSharedKeysGateway`, `FakeSharedSpaceGateway`, `MemoryKeyPinStore`, `FakeFileServerGateway`, `MemoryFileCache` |
|
||
|
|
|
||
|
|
`sodium`'s build hook compiles libsodium, so every machine that builds or tests it needs a C
|
||
|
|
compiler and `make` (as for halkyon_keys). Licensed under the AGPL-3.0, as the apps.
|