sapling/eden/scm/lib/edenapi/Cargo.toml
Arun Kulshreshtha 30a6cad591 edenapi: add EdenAPI testing CLI
Summary:
This diff adds an EdenAPI CLI program that allows manually sending requests to the server.

Requests are read from stdin in a JSON format (the same format used by the `make_req` tool and the EdenAPI server integration tests). This makes it easy to create and edit requests during debugging.

Responses are re-serialized as CBOR and written to stdout. (The program will refuse to write output if stdout is a TTY.) These responses can then be analyzed using the `read_res` tool (also used by the EdenAPI server integration tests).

The program prints real-time download statistics during data fetching, allow the user to debug performance in addition to correctness.

The program uses standard `hgrc` files to configure the EdenAPI client, which means that one can simulate production settings by specifying a production `hgrc`. By default, it will read from `~/.hgrc.edenapi` rather than `~/.hgrc` since the user will most likely want to configure this program independently of Mercurial.

Reviewed By: quark-zju

Differential Revision: D22370163

fbshipit-source-id: 5d9974bc05fa960d26cd2c87810f4646e2bc55b4
2020-07-09 13:08:27 -07:00

39 lines
973 B
TOML

# @generated by autocargo from //eden/scm/lib/edenapi:[edenapi,edenapi_cli]
[package]
name = "edenapi"
edition = "2018"
version = "0.1.0"
include = ["src/**/*.rs", "src/bin/cli.rs"]
[lib]
path = "src/lib.rs"
[[bin]]
name = "edenapi_cli"
path = "src/bin/cli.rs"
[dependencies]
auth = { path = "../auth" }
configparser = { path = "../configparser" }
edenapi_types = { path = "types" }
http_client = { path = "../http_client" }
types = { path = "../types" }
anyhow = "1.0"
ascii = "1.0"
async-trait = "0.1.29"
atty = "0.2"
dirs = "2.0"
env_logger = "0.7"
futures = { version = "0.3.5", features = ["async-await", "compat"] }
http = "0.2"
indicatif = { version = "0.14", features = ["with_rayon"] }
itertools = "0.8"
log = { version = "0.4.8", features = ["kv_unstable"] }
serde = { version = "1.0", features = ["derive", "rc"] }
serde_cbor = "0.11"
serde_json = "1.0"
structopt = "0.3.7"
thiserror = "1.0"
tokio = { version = "=0.2.13", features = ["full"] }
url = "2.1.0"