sapling/eden/mononoke
Dan Forest d8d78e7878 fix API typing to match original implementation
Summary:
Cleanup Rust APIs and underlying Cxx FFI helpers to be more correct

- most u32 values are not valid ports (u16), end-user API must make it hard/impossible to pass garbage values

- fix other parameters that were i32 and should have been u32/u64 (+ reliance on implicit conversions on the Cxx side)

- update all users + sfcli Rust template

Reviewed By: dtolnay

Differential Revision: D28395107

fbshipit-source-id: 699253b04cfa03e3684bbd253116406fc658ed97
2021-05-19 18:51:04 -07:00
..
admin mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -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 mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
benchmark_filestore mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
benchmarks mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
blobimport manifold/client: take IOBufShared data as input for writes 2021-05-19 09:57:20 -07:00
blobimport_lib mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
blobrepo mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
blobrepo_utils mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
blobstore mononoke: replicate D28287486 logic to MultiplexedBlobstore::get() 2021-05-18 11:41:40 -07:00
blobstore_healer mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
blobstore_sync_queue mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
bonsai_git_mapping mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
bonsai_globalrev_mapping mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -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 mononoke/bookmarks: fix a flaky test 2021-05-18 08:07:41 -07:00
bulkops mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
cache_warmup mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
changesets rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
cmdlib mononoke: make scrubbing of write mostly stores optional 2021-05-14 02:37:20 -07:00
cmds manifold/client: take IOBufShared data as input for writes 2021-05-19 09:57:20 -07:00
commit_rewriting mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
common mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
derived_data mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
edenapi_server mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
edenapi_service mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
fastreplay mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
filenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
filestore mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
git Improve git-import speed - save_bonsai_changesets 2021-05-18 16:31:15 -07:00
gotham_ext mononoke/gotham_ext: update away from deprecated async-compression stream module 2021-05-18 10:30:22 -07:00
hgcli mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
hgproto rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
hook_tailer mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
hooks mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
lfs_import rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_import_lib mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
lfs_protocol rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
lfs_server mononoke/gotham_ext: update away from deprecated async-compression stream module 2021-05-18 10:30:22 -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 mononoke: add a simple test for sync changeset 2021-05-18 07:37:56 -07:00
mercurial mononoke: make gettreepack buffer size configurable and change default to 1000 2021-05-19 07:30:06 -07:00
metaconfig mononoke: sample harder in the walker 2021-05-06 07:07:02 -07:00
microwave mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
mononoke_api mononoke: add a simple test for sync changeset 2021-05-18 07:37:56 -07:00
mononoke_api_hg rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
mononoke_hg_sync_job mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
mononoke_types mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
mutable_counters mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
newfilenodes mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
observability rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
permission_checker mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
phases rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
pushrebase mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
pushrebase_mutation_mapping rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
quiet_stream mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
reachabilityindex mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
regenerate_hg_filenodes rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
repo_attributes megarepo_api: introduce a MegarepoApi struct to rule them all 2021-05-12 12:00:20 -07:00
repo_client mononoke: yield periodically on repo client streams 2021-05-17 04:17:40 -07:00
repo_factory mononoke: add a simple test for sync changeset 2021-05-18 07:37:56 -07:00
repo_import mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
revset mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
scs megarepo_api: turn tokens into target-containing structs 2021-05-12 02:01:06 -07:00
scs_server fix API typing to match original implementation 2021-05-19 18:51:04 -07:00
segmented_changelog mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
server mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
sshrelay mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
statistics_collector mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
streaming_clone mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
tests Teach the packer to do multiple packs in a single process 2021-05-19 03:32:40 -07:00
time_window_counter rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
tunables mononoke: make gettreepack buffer size configurable and change default to 1000 2021-05-19 07:30:06 -07:00
unbundle_replay mononoke: sync changeset implementation for megarepo 2021-05-13 10:04:21 -07:00
upload_globalrevs rust: remove patch for async-compression 2021-05-05 12:20:34 -07:00
walker mononoke: make scrubbing of write mostly stores optional 2021-05-14 02:37:20 -07:00
Cargo.toml Teach the packer to do multiple packs in a single process 2021-05-19 03:32:40 -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