
Personal Ledger | Backend
Backend server for the Personal Ledger application. This repository contains a Rust gRPC daemon that interfaces with the database and serves data to clients.
Explore the docs »
·
Personal Ledger (Parent Repo)
·
Report Bug
·
Request Feature
·
Quickstart
- Build:
cargo build
- Run:
cargo run
- Tests:
cargo test
If you use the provided devcontainer, rebuild it first (Command Palette → "Dev Containers: Rebuild Container") and then open a terminal in the container to run the commands above.
Development
- Language: Rust
- Primary crates & tooling:
tonic
(gRPC),sqlx
(Postgres),tracing
,serde
,thiserror
. - Devcontainer:
.devcontainer/devcontainer.json
includes tools such asmdbook
,cargo-make
,cargo-watch
,cargo-audit
,clippy
,rustfmt
, andprotoc
. - Copilot instructions can be found in
.github/copilot-instructions.md
Documentation
Project docs live in the docs/
folder. They can be browsed at https://ianteda.github.io/personal-ledger-backend/ or local running the command:
-
Serve mdBook documentation (uses port
8001
in the devcontainer):mdbook serve --port 8001
Protobuf / gRPC
Protobuf files are stored under protos/
(submodule). The build script build.rs
compiles protos into Rust types — ensure protoc
is available (the devcontainer installs protobuf-compiler
).
Concirm gRPC reflections service with grpcurl -plaintext localhost:50051 list
Code Quality
- Formatting:
cargo fmt
/rustfmt
- Linting:
cargo clippy
- Coverage:
cargo tarpaulin
(available in the devcontainer)
Running the MCP / awesome-copilot server (optional)
If you want to run the awesome-copilot
MCP image from the awesome-copilot
project locally (for experimenting with Copilot customizations), you can run it with Docker inside the devcontainer:
docker run -i --rm ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest
Do not commit any credential or secret files. If the MCP server requires configuration, prefer using a workspace-local .vscode/
configuration file and local secrets (user settings or environment variables).
Contributing
Please open issues or pull requests for bugs and feature requests. Follow the repository coding standards: add tests, run cargo fmt
, and run cargo clippy
before submitting.
License
See the repository LICENSE
file for licensing information.