Private
Public Access
1
0
Files
Kordophone/core/README.md

70 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Kordophone Core (Rust Workspace)
This directory contains the shared Rust code and tools used by Kordophone clients.
Workspace members:
- `kordophone/` — Rust client library for the Kordophone HTTP/WebSocket API. Crossplatform.
- `kordophone-db/` — Lightweight cache/database and models built with Diesel (SQLite).
- `kordophoned/` — Client daemon providing local caching and IPC
- Linux: DBus
- macOS: XPC (see notes below)
- `kordophoned-client/` — Cross-platform client library for talking to `kordophoned` (D-Bus/XPC).
- `kpcli/` — Commandline interface for interacting with the API, DB, and daemon.
- `kptui/` — Terminal UI client (Ratatui) for reading and replying to chats via the daemon.
- `utilities/` — Small helper tools (e.g., testing utilities).
## Build
```bash
cd core
cargo build # build all workspace members
cargo test -p kordophone
```
Build a specific crate:
```bash
cargo build -p kordophone
cargo build -p kordophoned --release
```
## `kordophoned` (Client Daemon)
The daemon maintains a local cache, handles update cycles, and exposes IPC for GUI apps.
- Linux: exposes a DBus service (see service file in `kordophoned/include`).
- macOS: exposes an XPC service named `net.buzzert.kordophonecd`.
macOS XPC registration (manual during development):
```bash
cd core/kordophoned
launchctl load include/net.buzzert.kordophonecd.plist
```
The macOS GUI app (`osx/`) can programmatically register this during launch; see `osx/README.md`.
### Packaging (RPM example)
`kordophoned` is configured for RPM packaging via `cargo-generate-rpm`.
```bash
cargo build --release
strip -s target/release/kordophoned
cargo generate-rpm
```
## `kpcli` (CLI)
Useful for quick testing and interacting with the daemon/cache.
```bash
cargo run -p kpcli -- --help
```
## Notes
- TLS/WebSocket: the `kordophone` crate includes `rustls` and installs a crypto provider at process start.
- DB: `kordophone-db` includes Diesel migrations under `kordophone-db/migrations/`.