1.8 KiB
1.8 KiB
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. Cross‑platform.kordophone-db/— Lightweight cache/database and models built with Diesel (SQLite).kordophoned/— Client daemon providing local caching and IPC- Linux: D‑Bus
- macOS: XPC (see notes below)
kpcli/— Command‑line interface for interacting with the API, DB, and daemon.utilities/— Small helper tools (e.g., testing utilities).
Build
cd core
cargo build # build all workspace members
cargo test -p kordophone
Build a specific crate:
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 D‑Bus service (see service file in
kordophoned/include). - macOS: exposes an XPC service named
net.buzzert.kordophonecd.
macOS XPC registration (manual during development):
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.
cargo build --release
strip -s target/release/kordophoned
cargo generate-rpm
kpcli (CLI)
Useful for quick testing and interacting with the daemon/cache.
cargo run -p kpcli -- --help
Notes
- TLS/WebSocket: the
kordophonecrate includesrustlsand installs a crypto provider at process start. - DB:
kordophone-dbincludes Diesel migrations underkordophone-db/migrations/.