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]

Reply via email to