Split core and TUI crates
This commit is contained in:
28
docs/IOS_CORE_REUSE.md
Normal file
28
docs/IOS_CORE_REUSE.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# iOS core reuse
|
||||
|
||||
Первый workspace split готовит код к будущему iOS-клиенту, но не добавляет
|
||||
Swift, SwiftUI, UniFFI, C ABI или XCFramework.
|
||||
|
||||
## Уже в `tele-core`
|
||||
|
||||
- Typed IDs и shared domain-типы: `types`.
|
||||
- TDLib client wrapper, auth/chats/messages/reactions/users/update handling.
|
||||
- `TdClientConfig` и `TdCredentials`: credentials передаются явно из клиента.
|
||||
- Core-neutral `IncomingMessageEvent` вместо прямой зависимости от desktop notifications.
|
||||
- Pure message grouping.
|
||||
- Pure account profile structs and validation.
|
||||
- Reusable `FakeTdClient` and TDLib test data.
|
||||
|
||||
## Остаётся TUI-only
|
||||
|
||||
- `ratatui`, `crossterm`, UI state, input handling and snapshots.
|
||||
- Runtime config loading, `.env`, `accounts.toml`, XDG/macOS paths and lock files.
|
||||
- Desktop notifications, clipboard, URL opening, terminal images and `ffplay`.
|
||||
- PTY fixture and `termwright` E2E tests.
|
||||
|
||||
## Следующий этап
|
||||
|
||||
1. Decide the iOS-facing API shape on top of `tele-core`.
|
||||
2. Add UniFFI or a C ABI only after the Rust boundary is stable.
|
||||
3. Validate TDLib linking and database paths for `aarch64-apple-ios`.
|
||||
4. Keep platform delivery concerns outside `tele-core`.
|
||||
Reference in New Issue
Block a user