sapling/eden/mononoke
David Tolnay 91cb486949 rust: Begin upgrading to bytes 0.5
Summary:
This upgrade is complicated because Tokio's codecs are coupled to a specific version of bytes.

- 0.1 codecs use bytes 0.4
    - https://docs.rs/tokio-codec/0.1/tokio_codec/trait.Encoder.html
    - https://docs.rs/tokio-codec/0.1/tokio_codec/trait.Decoder.html

- 0.2 codecs use bytes 0.5
    - https://docs.rs/tokio-util/0.2/tokio_util/codec/trait.Encoder.html
    - https://docs.rs/tokio-util/0.2/tokio_util/codec/trait.Decoder.html

Since we can't possibly do a coordinated atomic upgrade of tokio, we'll be straddling bytes versions during the migration period. This relies on the adapters added in D19919402.

Reviewed By: jsgf

Differential Revision: D19919403

fbshipit-source-id: 18c5f66efa587bc53ab13c9aab95c7098bfbce4e
2020-02-18 21:20:09 -08:00
..
apiserver mononoke/warm_bookmarks_cache: use the repo's configuration 2020-02-18 07:40:25 -08:00
benchmark Push compat down one level in fbcode/eden/mononoke/benchmark/benchmark.rs 2020-02-18 11:01:12 -08:00
blobimport_lib/src backfill_derived_data mononoke: fail if derived data disabled 2020-02-16 04:56:34 -08:00
blobrepo mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
blobrepo_utils mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
blobstore rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
blobstore_sync_queue Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
bonsai_globalrev_mapping Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
bonsai_hg_mapping rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
bookmarks mononoke/warm_bookmarks_cache: use the repo's configuration 2020-02-18 07:40:25 -08:00
cache_warmup/src remove the need to pass mapping to ::derive method 2020-02-12 10:22:39 -08:00
changesets rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
cmdlib Move cache name to allocator, instead of CacheAdmin 2020-02-14 14:13:11 -08:00
cmds rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
commit_rewriting mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
common mononoke: always prefer replica even if it's no the closest 2020-02-14 11:03:55 -08:00
derived_data mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
edenapi_server/src mononoke: move facebook/scuba_ext to common/scuba_ext 2020-02-14 01:29:39 -08:00
fastreplay/src mononoke/fastreplay: fix off-by-one in load tracking 2020-02-18 04:24:11 -08:00
filenodes mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
filestore/src mononoke: Add hash::GitSha1 as a pure hash-only key for git Aliases 2020-02-18 05:02:52 -08:00
git rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
gotham_ext/src gotham_ext: move TLS-related middleware into gotham_ext 2020-02-13 17:47:34 -08:00
hgcli Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
hgproto rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
hook_tailer Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
hooks mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
lfs_import_lib/src Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
lfs_protocol/src Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
lfs_server/src mononoke: lfs_server: add jitter field to ratelimit struct 2020-02-18 07:47:09 -08:00
manifest Manual synchronization of fbcode/eden and facebookexperimental/eden 2020-02-11 11:42:43 +01:00
mercurial rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
metaconfig mononoke: disable filenodes generation during hg changeset generation, take 2 2020-02-13 03:18:13 -08:00
mononoke_api/src mononoke/warm_bookmarks_cache: use the repo's configuration 2020-02-18 07:40:25 -08:00
mononoke_types rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
phases mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
pushrebase/src mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
reachabilityindex rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
repo_client mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
revset mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
scs_server/src mononoke: add scuba logging for prefix lookup in SCS Server 2020-02-17 02:34:01 -08:00
segmented_changelog/src mononoke (+ rust/shed/async_unit): update async_unit to expect async fn's 2020-02-18 01:55:00 -08:00
server mononoke: cover server/context with OSS build 2020-02-14 04:51:49 -08:00
sshrelay rust: Begin upgrading to bytes 0.5 2020-02-18 21:20:09 -08:00
tests mononoke: lfs_server: add jitter field to ratelimit struct 2020-02-18 07:47:09 -08:00
walker/src mononoke: Add hash::GitSha1 as a pure hash-only key for git Aliases 2020-02-18 05:02:52 -08:00
Cargo.toml mononoke: move facebook/scuba_ext to common/scuba_ext 2020-02-14 01:29:39 -08: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