Skip to content

Migrate Ahnlich DB to Grpc Implementation and Types #200

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 48 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
05a6f21
Upgrading cargo to 1.85
deven96 Feb 22, 2025
9b47a41
Unit type proto functions still need atleast one argument
deven96 Feb 22, 2025
60e5535
WIP: Adding stop gaps for moving listener stream
deven96 Feb 23, 2025
7c5109c
Derive serde serialize and deserialize from prost files for db store
Iamdavidonuh Mar 7, 2025
01bfea1
WIP: swapping out ahnlich types from db store
Iamdavidonuh Mar 8, 2025
e5e8fce
Migration: Complete swap in db (algorithm and similarity), store.rs 9…
Iamdavidonuh Mar 16, 2025
247985c
Migration: Complete store.rs swap to grpc types
Iamdavidonuh Mar 16, 2025
9f1e8c2
Migration: Complete swap in db -> predicate.rs
Iamdavidonuh Mar 16, 2025
97200aa
Update handler to use grpc_types without a need for type conversions
Iamdavidonuh Mar 16, 2025
9b68dea
connect ahnlichserverutilsv2 to db Server struct
Iamdavidonuh Mar 16, 2025
8047435
Use grpc types in db benches
Iamdavidonuh Mar 16, 2025
a0af96d
Adding pipeline for DB client
deven96 Mar 16, 2025
170b994
WIP: Migrating ai service to grpc
deven96 Mar 18, 2025
2433929
WIP: ahnlich AI is building now
deven96 Mar 23, 2025
3b64f2b
format grpc types
Iamdavidonuh Mar 27, 2025
9590860
complete set command in db. Add type conversion froms storeinput to m…
Iamdavidonuh Mar 27, 2025
07a1644
Remove metadatatype from protos
Iamdavidonuh Mar 27, 2025
60b58ab
WIP: Migrate DB Tests: create store and del pred tests migrated
Iamdavidonuh Mar 30, 2025
22736ef
Migration: Add all equivalent tests from server_test.rs. Remaining: p…
Iamdavidonuh Mar 30, 2025
94cfd75
Complete Persistence tests
Iamdavidonuh Apr 2, 2025
0a235df
Fix client tracking without request layer
deven96 Apr 21, 2025
8ebbc5d
Fixing lib from main
deven96 Apr 21, 2025
e1e6147
remove server tests and fmt
Iamdavidonuh Apr 21, 2025
978db5b
Merging papaya fixes from main
deven96 Apr 21, 2025
36a3ad9
Fixing lints and size hints
deven96 Apr 21, 2025
5f1587c
Fixing formatting
deven96 Apr 21, 2025
58f3799
Adding GRPC migration TODO
deven96 Apr 21, 2025
33ef906
Migrating DSL to use grpc types
deven96 Apr 26, 2025
13b9885
Ticked DSL task as done
deven96 Apr 26, 2025
c8c8917
David/grpc migration (#201)
Iamdavidonuh May 25, 2025
b35d889
More On Test Migrations (#202)
Iamdavidonuh May 25, 2025
7d56ebd
Update client docs and path to new ported clients
Iamdavidonuh May 25, 2025
e9d48e0
Rename grpc_types to types
Iamdavidonuh May 25, 2025
5c49da3
More renaming from grpc_types to ahnlich_types
Iamdavidonuh May 25, 2025
0d330a2
Fix Ahnlich CLI
Iamdavidonuh May 25, 2025
5744728
Fix Rust Example
Iamdavidonuh May 25, 2025
aace2b2
Add lint directive for examples to workflow file
Iamdavidonuh May 25, 2025
5661f5c
Clippy fixes
Iamdavidonuh May 25, 2025
d16c580
fixing path in action
Iamdavidonuh May 25, 2025
f232b9f
fix failing tests and sort list stores res
Iamdavidonuh May 25, 2025
595eca2
formatting similarity
Iamdavidonuh May 25, 2025
2b4e72b
fix tests in get key
Iamdavidonuh May 25, 2025
5b24bb8
fix tests in get key
Iamdavidonuh May 25, 2025
8045850
Migrated python client to gRPC
deven96 May 30, 2025
5876a3e
Adding CI checks for python and rust client
deven96 Jun 10, 2025
37280f3
Remove .DS_Store from py client
deven96 Jun 10, 2025
07644f6
Standardize ai del_key to take multiple keys
deven96 Jun 10, 2025
421f18c
WIP: migrating ahnlich python client readme
Iamdavidonuh Jun 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
- name: Get Cargo toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.85.0
toolchain: 1.87.0

- name: Install Protoc
uses: arduino/setup-protoc@v3
Expand All @@ -68,7 +68,7 @@ jobs:
- name: Get Cargo toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.85.0
toolchain: 1.87.0

- name: Install Protoc
uses: arduino/setup-protoc@v3
Expand Down Expand Up @@ -127,7 +127,7 @@ jobs:
- name: Get Cargo toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.85.0
toolchain: 1.87.0

- name: Install Protoc
uses: arduino/setup-protoc@v3
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rust_tag_and_deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ jobs:
- name: Get Cargo toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: 1.85.0
toolchain: 1.87.0

- name: Install Protoc
uses: arduino/setup-protoc@v3
Expand Down
25 changes: 25 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,21 @@ jobs:
make format
make clippy

- name: Check Rust Client is up to date
working-directory: ./ahnlich
run: |
make grpc-update-rust
if [[ -n "$(git status . --porcelain)" ]]; then
echo "::error::Running 'make grpc-update-rust' caused changes, Please check that rust client is up to date"
git --no-pager diff .
exit 1
fi

- name: Build and Format Rust Example
working-directory: ./examples/rust/image-search
run: |
cargo b && cargo fmt

- name: Run Test
working-directory: ./ahnlich
run: |
Expand Down Expand Up @@ -101,6 +116,16 @@ jobs:
working-directory: ./ahnlich
run: |
cargo build

- name: Check Python Client is up to date
working-directory: ./ahnlich
run: |
make grpc-update-python
if [[ -n "$(git status ../sdk/ahnlich-client-py --porcelain)" ]]; then
echo "::error::Running 'make grpc-update-python' caused changes, Please check that python client is up to date"
git --no-pager diff ../sdk/ahnlich-client-py
exit 1
fi

- name: Run Python Client Tests
working-directory: ./sdk/ahnlich-client-py
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ create_store(
query_model="all-minilm-l6-v2",
)
```
- [`ahnlich-client-rs`](ahnlich/client/): Rust client for `ahnlich-db` and `ahnlich-ai` with support for connection pooling.
- [`ahnlich-client-py`](sdk/ahnlich-client-py/): Python client for `ahnlich-db` and `ahnlich-ai` with support for connection pooling.
- [`ahnlich-client-rs`](ahnlich/client/): Rust client for `ahnlich-db` and `ahnlich-ai`.
- [`ahnlich-client-py`](sdk/ahnlich-client-py/): Python client for `ahnlich-db` and `ahnlich-ai`.

- [`ahnlich-cli`](ahnlich/cli/): CLI for querying `ahnlich-db` and `ahnlich-ai`

Expand Down
18 changes: 18 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## GRPC rewrite TODOs

- [x] Fixing FIXMEs in DB test
- [ ] Fixing AI tests to use new grpc methods
- [x] Fixing ahnlich client tests to use new grpc methods
- [x] Fixing ahnlich client README documentation that still references creating connection pools and TCP stuff
- [X] Fixing DSL to use grpc methods
- [x] Renaming grpc_types to ahnlich_types
- [x] Fixing CLI to use grpc methods
- [ ] Starting Python rewrite to use new grpc methods


## Python Rewrite
- [ ] Create a blocking client that wraps around betterproto async client
- [X] Create CI step that checks that `grpc-update-client` does not produce any diffs so that our clients are always up to date.
- [X] Update tests.
- [ ] Fix Demo embed and demo tracing.
- [ ] Migrate README to reflect grpc client.
Loading
Loading