Files
komp_ac/README.md
2026-08-14 13:59:23 +02:00

60 lines
1.9 KiB
Markdown

# 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.