imbajin opened a new issue, #748:
URL: https://github.com/apache/hugegraph-toolchain/issues/748
## Goal
Explore an **incremental Rust implementation** of selected HugeGraph
Toolchain
components. The intent is to improve safety, portability, startup/runtime
efficiency, and contributor experience where Rust provides measurable value.
This is a parent tracking issue, not a commitment to replace the existing
implementation wholesale. Existing Java/Go components remain supported while
Rust alternatives are designed, benchmarked, and adopted step by step.
## Proposed priority
1. **Rust client and Loader (parallel)**
- Use the Java client and current Loader behavior as the compatibility
reference.
- Start with a minimal client: transport, authentication, schema, graph,
and
Gremlin APIs.
- Build a Loader pipeline on top of the client with bounded memory,
backpressure, retry, and resumability.
2. **Tools**
- Port small, well-bounded commands after the client APIs stabilize.
- Preserve command-line behavior and backup/restore compatibility.
3. **Other components**
- Evaluate independently; migrate only when the benefit and maintenance
cost
are clear.
## Delivery model
```text
proposal/RFC -> minimal vertical slice -> compatibility tests
-> benchmark -> opt-in preview -> production-ready candidate
```
Each child issue should define:
- scope, owner/mentor, and non-goals;
- public API/CLI and data-format compatibility requirements;
- correctness, integration, and cross-language parity tests;
- reproducible performance and resource benchmarks;
- security/dependency checks (`rustfmt`, `clippy`, audit) and supported
platforms;
- coexistence, migration, and rollback plans;
- user and contributor documentation.
No large rewrite PR should start before its design and acceptance criteria
are
reviewed. Small, reviewable PRs and stable interoperability boundaries are
preferred.
## Candidate work items
- [ ] Agree on the Rust workspace/repository layout and minimum supported
Rust version
- [ ] Define the compatibility matrix and shared test fixtures
- [ ] Create the minimal Rust client design issue
- [ ] Create the Loader architecture/design issue
- [ ] Establish CI, lint, dependency, packaging, and release conventions
- [ ] Publish baseline benchmarks against the current implementation
- [ ] Split approved work into newcomer-friendly child issues
This checklist will link to concrete child issues as proposals are accepted.
## Project-wide roadmap
Related parent issues will be linked here after creation.
## How to participate
Contributors interested in **open source, Rust, graph systems, databases, or
infrastructure** are very welcome. Please comment with the area you want to
work on and any relevant experience. Design discussion, benchmarks, test
fixtures, documentation, and small implementation tasks are all valuable—not
only large code contributions.
For first-time contributors, see the
[HugeGraph contribution
guide](https://hugegraph.apache.org/docs/contribution-guidelines/contribute/)
and the repository's `good first issue` / `help wanted` tasks.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]