sapling/eden/mononoke
Stefan Filip 1852d28c38 edenapi_service: add CustomCborStream
Summary:
Some EdenapiEndpoints serialize their error and send them to the client. This
robs the gotham framework from the change of seeing those errors. This custom
stream takes care of counting those errors and reporting them to gotham for
logging.

There is a slight worry in the back of my head that if we start getting errors,
CPU utilization will increase because we construct so many extra strings.

Reviewed By: kulshrax

Differential Revision: D28109314

fbshipit-source-id: ab39a05227e0f8be9205d6036d32523cb1e45ca4
2021-05-06 09:14:10 -07:00
..
admin rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
aliasverify rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
alpn rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
backfill_derived_data rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
benchmark_filestore rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
benchmarks rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
blobimport rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
blobimport_lib rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
blobrepo rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
blobrepo_utils rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
blobstore context: remove CoreContext::test_mock_class 2021-05-05 15:29:26 -07:00
blobstore_healer rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
blobstore_sync_queue rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
bonsai_git_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
bonsai_globalrev_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
bonsai_hg_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
bonsai_svnrev_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
bookmarks rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
bulkops rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
cache_warmup rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
changesets rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
cmdlib rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
cmds admin: add blame-v2 to blame compute 2021-05-06 05:45:49 -07:00
commit_rewriting rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
common rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
derived_data rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
edenapi_server rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
edenapi_service edenapi_service: add CustomCborStream 2021-05-06 09:14:10 -07:00
fastreplay rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
filenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
filestore rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
git rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
gotham_ext edenapi_service: add CustomCborStream 2021-05-06 09:14:10 -07:00
hgcli rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
hgproto rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
hook_tailer rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
hooks rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_import rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_import_lib rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_protocol rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_server rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
load_limiter rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
manifest rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
megarepo_api rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
mercurial rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
metaconfig mononoke: sample harder in the walker 2021-05-06 07:07:02 -07:00
microwave rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
mononoke_api rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
mononoke_api_hg rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
mononoke_hg_sync_job rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
mononoke_types blame_v2: add blame_v2 types and implementation 2021-05-06 05:45:49 -07:00
mutable_counters rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
newfilenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
observability rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
permission_checker rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
phases rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
pushrebase rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
pushrebase_mutation_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
quiet_stream rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
reachabilityindex rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
regenerate_hg_filenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
repo_attributes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
repo_client mononoke: allow duplicate filenodes to be sent 2021-05-06 03:31:19 -07:00
repo_factory rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
repo_import rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
revset rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
scs_server mononoke: update to tokio 1.x 2021-04-28 07:36:31 -07:00
segmented_changelog rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
server context: rename CoreContext's base constructor 2021-05-05 15:29:26 -07:00
sshrelay rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
statistics_collector rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
streaming_clone rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
tests rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
time_window_counter rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
tunables rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
unbundle_replay rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
upload_globalrevs rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
walker mononoke: sample harder in the walker 2021-05-06 07:07:02 -07:00
Cargo.toml rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
README.md mononoke: add README.md and the missing pieces for supporting cargo (#13) 2020-02-13 00:12:36 -08:00

Mononoke

Mononoke is a next-generation server for the Mercurial source control system, meant to scale up to accepting thousands of commits every hour across millions of files. It is primarily written in the Rust programming language.

Caveat Emptor

Mononoke is still in early stages of development. We are making it available now because we plan to start making references to it from our other open source projects.

The version that we provide on GitHub does not build yet.

This is because the code is exported verbatim from an internal repository at Facebook, and not all of the scaffolding from our internal repository can be easily extracted. The key areas where we need to shore things up are:

  • Full support for a standard cargo build.
  • Open source replacements for Facebook-internal services (blob store, logging etc).

The current goal is to get Mononoke working on Linux. Other Unix-like OSes may be supported in the future