-
Notifications
You must be signed in to change notification settings - Fork 0
[Upstream-Sync] [FEATURE] Add Ladybug target (Kuzu successor) — upstream PR #1487 #52
Copy link
Copy link
Closed
Copy link
Labels
cargoCargo and dependency related issuesCargo and dependency related issuesenhancementNew feature or requestNew feature or requestupstream-syncIssues for syncing updates with our upstream (cocoindex-io/cocoindex)Issues for syncing updates with our upstream (cocoindex-io/cocoindex)
Description
Summary
Adapt the upstream new target from cocoindex-io/cocoindex#1487: add Ladybug as a new target-ladybug feature-gated graph database target in Recoco, replacing the archived Kuzu project.
Background
- Kuzu (MIT-licensed property graph DB) was archived in October 2025.
- Ladybug is its actively maintained fork with an identical Cypher API server interface.
- Upstream PR #1487 adds Ladybug as a first-class target, with a note to eventually retire the Kuzu target.
- Recoco already has a full
target-kuzuimplementation incrates/recoco-core/src/ops/targets/kuzu.rsusing the same API server-based thin-client approach.
What changes upstream?
- New file:
rust/cocoindex/src/ops/targets/ladybug.rs— a near-identical copy ofkuzu.rswith allKuzu*symbols renamed toLadybug* rust/cocoindex/src/ops/targets/mod.rs— addspub mod ladybugrust/cocoindex/src/ops/registration.rs— registers the Ladybug factory, cloning thereqwest_client
Action for Recoco
- Create
crates/recoco-core/src/ops/targets/ladybug.rsby adapting the upstream file. This is largely a mechanical rename ofkuzu→ladybug, with one API callsite to verify (see note below). - Update
crates/recoco-core/src/ops/targets/mod.rsto add:Also update the#[cfg(feature = "target-ladybug")] pub mod ladybug;
#[cfg(any(...))]guard onpub mod sharedto includetarget-ladybug. - Update
crates/recoco-core/Cargo.toml:- Add
target-ladybugfeature:target-ladybug = ["dep:reqwest", "recoco-utils/reqwest", "target-neo4j"](same deps astarget-kuzu) - Add
target-ladybugto theall-targetsandfullbundles
- Add
- Register the Ladybug factory in registration (wherever
kuzu::registeris called). - Decide on a deprecation or migration path for
target-kuzu— upstream recommends retiring Kuzu in favour of Ladybug.
⚠️ API compatibility note
Recoco's kuzu.rs calls http::request(|| ...) (zero-arg closure), while the upstream ladybug.rs calls http::request(&self.reqwest_client, |client| ...) (two-arg form). Verify which signature recoco-utils/http currently exposes before copying the upstream code verbatim.
Recoco mapping
| Upstream | Recoco |
|---|---|
rust/cocoindex/src/ops/targets/ladybug.rs |
crates/recoco-core/src/ops/targets/ladybug.rs |
rust/cocoindex/src/ops/targets/mod.rs |
crates/recoco-core/src/ops/targets/mod.rs |
rust/cocoindex/src/ops/registration.rs |
Registration module in recoco-core |
Feature target-kuzu (upstream, to be deprecated) |
target-kuzu in Recoco (consider deprecation path) |
References
- Upstream PR: cocoindex-io/cocoindex#1487
- Upstream
ladybug.rsat merge commit: https://github.com/cocoindex-io/cocoindex/blob/1c5cf67587e7fe769f129b78f603956c9824061a/rust/cocoindex/src/ops/targets/ladybug.rs - Bootstrap tracking issue: #27
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
cargoCargo and dependency related issuesCargo and dependency related issuesenhancementNew feature or requestNew feature or requestupstream-syncIssues for syncing updates with our upstream (cocoindex-io/cocoindex)Issues for syncing updates with our upstream (cocoindex-io/cocoindex)