sapling/lib
Arun Kulshreshtha c067536fae mononokeapi: use url::Url instead of http::Uri
Summary: The canonical URL type in Rust, `http::Uri`, does not support manipulating URLs easily. (e.g., concatenating path components, etc.) As such, switch to using the `Url` type from the `url` crate, which does support URL manipulation, and convert to `http::Uri` before passing the resulting URL to Hyper.

Reviewed By: phillco

Differential Revision: D13738139

fbshipit-source-id: c7de67f1596ebc1bdde89d3fe87086f49c32b5db
2019-01-18 15:47:17 -08:00
..
argparse codemod: add copyright headers 2018-10-26 15:09:12 -07:00
bookmarkstore bookmark: Turn BookmarkStore into indexed-log backed 2018-11-28 10:21:26 -08:00
cdatapack hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
clib Started Eden for Windows and integrated hg store with it. 2018-08-21 17:51:26 -07:00
commitcloudsubscriber commitcloudsubscriber: use Fallible 2019-01-15 03:50:47 -08:00
configparser configparser: update pest to 2.1.0 2019-01-16 03:52:09 -08:00
cpython-ext test-check-fix-code: unbreak test by fixing copyrights 2018-12-21 10:03:26 -08:00
cpython-failure cpython-failure: Integrate cpython PyResult with the failure crate 2018-12-14 06:43:40 -08:00
encoding encoding: use Cow for returned types that may be references 2018-10-30 04:07:02 -07:00
hg_watchman_client watchman_client: use Fallible 2019-01-15 03:50:47 -08:00
hgpython hgmain: use correct slashes in canonicalized paths 2018-11-28 09:20:02 -08:00
indexedlog indexedlog: add methods on Log to do prefix lookups 2018-12-20 15:50:55 -08:00
linelog linelog: update README 2018-11-08 12:34:36 -08:00
lz4-pyframe lz4-pyframe: add compresshc 2018-12-20 17:54:22 -08:00
minibench indexedlog: add more benchmarks 2018-12-06 14:57:52 -08:00
mononokeapi mononokeapi: use url::Url instead of http::Uri 2019-01-18 15:47:17 -08:00
mpatch codemod: use explicit versions in Cargo.toml 2018-11-15 18:54:06 -08:00
mpatch-sys codemod: use explicit versions in Cargo.toml 2018-11-15 18:54:06 -08:00
mutationstore types: use Fallible 2019-01-15 03:50:47 -08:00
nodemap types: use Fallible 2019-01-15 03:50:47 -08:00
pathmatcher codemod: use explicit versions in Cargo.toml 2018-11-15 18:54:06 -08:00
radixbuf codemod: add copyright headers 2018-10-26 15:09:12 -07:00
revisionstore revisionstore: sort pack files in list_packs 2019-01-16 15:18:24 -08:00
third-party xdiff: backport upstream changes 2018-04-13 21:51:48 -07:00
treestate codemod: use explicit versions in Cargo.toml 2018-11-15 18:54:06 -08:00
types types: use Fallible 2019-01-15 03:50:47 -08:00
vlqencoding vlqencoding: don't require Sized for Read or Write traits 2018-10-29 04:10:46 -07:00
watchman_client watchman_client: use Fallible 2019-01-15 03:50:47 -08:00
zstdelta rust: upgrade rust to 1.30.0 and bump zstd-sys version 2018-11-06 18:13:20 -08:00
Cargo.toml cpython-ext: add ways to zero-copy Vec<u8> into a Python object 2018-12-20 17:54:22 -08:00
README.md READMEs: tweaks based on feedback 2018-01-12 12:35:52 -08:00

lib

Any native code (C/C++/Rust) that Mercurial (either core or extensions) depends on should go here. Python code, or native code that depends on Python code (e.g. #include <Python.h> or use cpython) is disallowed.

As we start to convert more of Mercurial into Rust, and write new paths entrirely in native code, we'll want to limit our dependency on Python, which is why this barrier exists.

See also hgext/extlib/README.md, mercurial/cext/README.mb.

How do I choose between lib and extlib (and cext)?

If your code is native and doesn't depend on Python (awesome!), it goes here.

Otherwise, put it in hgext/extlib (if it's only used by extensions) or mercurial/cext (if it's used by extensions or core).