# komp_ac TUI accounting system. Client/server application with two extracted open-source libraries. ## Crates | Crate | What | Published | |-------|------|-----------| | `client` | TUI application, uses `tui-pages` + `tui-canvas` | No - GPLv3 | | `server` | Backend, gRPC services | No - AGPLv3 | | `common` | Shared protobuf types | No - GPLv3 | | `search` | Full-text search (Tantivy) | No - AGPLv3 | | [`tui-pages`](https://crates.io/crates/tui-pages) | Multi-page TUI navigation framework | Yes — MIT, [docs](https://tui-pages.farmeris.sk) | | [`tui-canvas`](https://crates.io/crates/tui-canvas) | Form / textarea / text input TUI widgets | Yes — MIT | | `tui-canvas-validation-core` | Validation primitives for `tui-canvas` | Yes — MIT | ## Development Server and client: ``` cargo watch-server cargo watch-client ``` These aliases only watch each application's local dependency tree. They build through Cargo, then run the binary separately so concurrent tests can reuse the same build cache. To connect a client to a second server instance, override its gRPC endpoint: ``` GRPC_ENDPOINT='http://[::1]:50052' cargo watch-client ``` ## Server database builds | Build | PostgreSQL | Intended use | |---|---|---| | `cargo build --release --package server` | Upstream embedded | Development and compatible Linux targets | | `nix build '.?submodules=1#portable-server'` | Musl embedded | Portable x86-64 Linux deployment | | `cargo build --release --package server --no-default-features` | External | Separately managed PostgreSQL | All builds contain and apply the SQLx migrations. See [`server/README.md`](server/README.md) for configuration. Client with tracing: ``` cargo watch -x 'run --package client --features ui-debug -- client' ``` ## License Application code (server, search): AGPL-3.0-or-later. Application code (client, common): GPL-3.0-or-later. Libraries (tui-canvas, tui-pages, tui-canvas-validation-core): MIT.