Oxidizing Mercurial (Using Rust)

David Demelier markand at malikania.fr
Mon Dec 4 04:35:04 EST 2017

On Sun, Dec 03, 2017 at 11:31:54PM -0800, Gregory Szorc wrote:
> A number of people have expressed an interest in using Rust in Mercurial.
> (Facebook is already using Rust for the Mononoke Mercurial server and
> extensions in the hg-experimental repo. But we still don't have any Rust in
> core.)

Rust is a good language, it is a good idea to get out from python in the

> I recently typed up https://www.mercurial-scm.org/wiki/OxidationPlan. It
> attempts to capture everything concerning using Rust with core Mercurial. A
> lot of the content was discussed at the 4.4 Sprint. But other content is
> new. So even if you attended the Sprint, it is probably worth reading. By
> all means, please edit the content where it needs editing!

Some notes before editing the wiki:

    If hg becomes a Rust binary and we want Mercurial to be a self-contained
    application, we'll need to overhaul our packaging mechanisms on all
    operating systems.

If building a rust application, one must use cargo anyway.

    We could provide a self-contained archive file containing hg binary,
    libpython27.so, and any other dependencies. We could also provide rpm, deb,
    etc packages for popular distributions. These would be self-contained and
    not dependent any many (any?) other packages. Our biggest concern here is
    libc compatibility. That can be solved by static linking, compiling against
    a sufficiently old (and compatible) libc, or providing distro-specific

Please don't, it's the the business of a developer to write a package for each
trillions of distributions out there. I would be okay to say that for flatpak
but not for native package management.

I just have one question though:

Once the most priorities are rewritten in Rust, will all the rest be
converted as well? I mean, having one day a 100% rust Mercurial?


More information about the Mercurial-devel mailing list