diff --git a/.github/workflows/rust_lint.yml b/.github/workflows/rust_lint.yml
new file mode 100644
index 00000000..645f1559
--- /dev/null
+++ b/.github/workflows/rust_lint.yml
@@ -0,0 +1,33 @@
+name: Rust Lint
+
+on:
+ pull_request:
+ types: [opened, reopened, synchronize]
+ paths:
+ - 'services/**'
+
+permissions:
+ contents: read
+ pull-requests: read
+
+jobs:
+ clippy:
+ runs-on: ubuntu-22.04
+ defaults:
+ run:
+ working-directory: services
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Set up Rust
+ uses: dtolnay/rust-toolchain@stable
+ with:
+ components: clippy, rustfmt
+
+ - name: Format
+ run: cargo fmt --all --check
+
+ - name: Lint
+ run: cargo clippy --all-targets --all-features -- -D warnings
diff --git a/.github/workflows/rust_test.yml b/.github/workflows/rust_test.yml
new file mode 100644
index 00000000..fba89cf0
--- /dev/null
+++ b/.github/workflows/rust_test.yml
@@ -0,0 +1,24 @@
+name: Rust Tests
+
+on:
+ pull_request:
+ types: [opened, reopened, synchronize]
+ paths:
+ - 'services/**'
+
+jobs:
+ tests:
+ runs-on: ubuntu-22.04
+ defaults:
+ run:
+ working-directory: services
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v6
+
+ - name: Set up Rust
+ uses: dtolnay/rust-toolchain@stable
+
+ - name: Run tests
+ run: cargo test
diff --git a/.goreleaser.yml b/.goreleaser.yml
index 2181b70f..d5f3d1f1 100644
--- a/.goreleaser.yml
+++ b/.goreleaser.yml
@@ -67,6 +67,9 @@ changelog:
homebrew_casks:
- name: poke-cli
ids: [ poke-cli ]
+ binaries:
+ - poke-cli
+ - poke-cache
description: "A hybrid CLI/TUI tool written in Go for viewing Pokémon data from the terminal!"
homepage: "https://docs.poke-cli.com/"
license: MIT
diff --git a/README.md b/README.md
index 79b9759b..6cdb3ed3 100644
--- a/README.md
+++ b/README.md
@@ -2,16 +2,27 @@
+
-
+
+
-
+
+## Pokemon CLI
+
-## Pokemon CLI
+
+

+

+
+
+

+

+
`poke-cli` is a hybrid of a classic CLI and a modern TUI tool for viewing VG and TCG data about Pokémon!
View the [documentation](https://docs.poke-cli.com) on the data infrastructure in [data_platform/](https://github.com/digitalghost-dev/poke-cli/tree/main/data_platform) if you're interested.
@@ -49,16 +60,20 @@ View the [documentation](https://docs.poke-cli.com) on the data infrastructure i
### Homebrew
+Homebrew will install the CLI _and_ the Rust caching binary
+
1. Install the Cask:
```bash
brew install --cask digitalghost-dev/tap/poke-cli
- ````
+ ```
2. Verify installation:
```bash
- poke-cli -v
+ poke-cli
```
### Scoop
+Scoop will install the CLI _and_ the Rust caching binary
+
1. Add the bucket:
```bash
scoop bucket add digitalghost https://github.com/digitalghost-dev/scoop-bucket.git
@@ -71,7 +86,7 @@ View the [documentation](https://docs.poke-cli.com) on the data infrastructure i
3. Verify installation:
```bash
- poke-cli -v
+ poke-cli
```
### Linux Packages
@@ -85,7 +100,6 @@ Cloudsmith is a fully cloud-based service that lets you easily create, store, an
| Package Type | Distributions | Repository Setup | Installation Command |
|:------------:|-----------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
-| `apk` | Alpine | `sudo apk add --no-cache bash && curl -1sLf 'https://dl.cloudsmith.io/basic/digitalghost-dev/poke-cli/setup.alpine.sh' \| sudo -E bash` | `sudo apk add poke-cli --update-cache` |
| `deb` | Ubuntu, Debian | `curl -1sLf 'https://dl.cloudsmith.io/public/digitalghost-dev/poke-cli/setup.deb.sh' \| sudo -E bash` | `sudo apt-get install poke-cli` |
| `rpm` | Fedora, CentOS, Red Hat, openSUSE | `curl -1sLf 'https://dl.cloudsmith.io/public/digitalghost-dev/poke-cli/setup.rpm.sh' \| sudo -E bash` | `sudo yum install poke-cli` |
diff --git a/services/Cargo.toml b/services/Cargo.toml
index 872b5973..79971373 100644
--- a/services/Cargo.toml
+++ b/services/Cargo.toml
@@ -2,6 +2,7 @@
name = "services"
version = "0.1.0"
edition = "2024"
+rust-version = "1.86"
[dependencies]
anyhow = "1.0"
diff --git a/services/README.md b/services/README.md
index ffc0bd94..913e09b2 100644
--- a/services/README.md
+++ b/services/README.md
@@ -6,8 +6,9 @@ These currently include:
* Caching
* Caches data from APIs to improve performance and reduce network usage.
+ 
* Aggregation
* Fetches each PokéAPI resource once and returns one structured JSON profile for the Go CLI to render.
- 
+ 
\ No newline at end of file