60 lines
1.9 KiB
Markdown
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.
|