4 |
4 |
5 This directory contains various Rust code for the Mercurial project. |
5 This directory contains various Rust code for the Mercurial project. |
6 Rust is not required to use (or build) Mercurial, but using it |
6 Rust is not required to use (or build) Mercurial, but using it |
7 improves performance in some areas. |
7 improves performance in some areas. |
8 |
8 |
9 There are currently three independent rust projects: |
9 There are currently four independent Rust projects: |
10 - chg. An implementation of chg, in rust instead of C. |
10 - chg. An implementation of chg, in Rust instead of C. |
11 - hgcli. A project that provide a (mostly) self-contained "hg" binary, |
11 - hgcli. A project that provides a (mostly) self-contained "hg" binary, |
12 for ease of deployment and a bit of speed, using PyOxidizer. See |
12 for ease of deployment and a bit of speed, using PyOxidizer. See |
13 hgcli/README.md. |
13 hgcli/README.md. |
14 - hg-core (and hg-cpython): implementation of some |
14 - hg-core (and hg-cpython): implementation of some |
15 functionality of mercurial in rust, e.g. ancestry computations in |
15 functionality of mercurial in Rust, e.g. ancestry computations in |
16 revision graphs, status or pull discovery. The top-level ``Cargo.toml`` file |
16 revision graphs, status or pull discovery. The top-level ``Cargo.toml`` file |
17 defines a workspace containing these crates. |
17 defines a workspace containing these crates. |
|
18 - rhg: a pure Rust implementation of Mercurial, with a fallback mechanism for |
|
19 unsupported invocations. It reuses the logic `hg-core` but completely forgoes |
|
20 interaction with Python. See `rust/rhg/README.md` for more details. |
18 |
21 |
19 Using Rust code |
22 Using Rust code |
20 =============== |
23 =============== |
21 |
24 |
22 Local use (you need to clean previous build artifacts if you have |
25 Local use (you need to clean previous build artifacts if you have |