jj/lib/Cargo.toml
Martin von Zweigbergk 4ee261717e simple_op_store: replace Protobuf by Thrift
As mentioned in the previous commit, we need to remove the Protobuf
dependency in order to be allowed to import jj into Google's
repo. This commit makes `SimpleOpStore` store its data using Thrift
instead of Protobufs. It also adds automatic upgrade of existing
repos. The upgrade process took 18 s in my repo, which has 22k
operations. The upgraded storage uses practically the same amount of
space. `jj op log` (the full outut) in my repo slowed down from 1.2 s
to 3.4 s. Luckily that's an uncommon operation. I couldn't measure any
difference in `jj status` (loading a single operation).
2022-11-13 11:39:33 -08:00

59 lines
1.7 KiB
TOML

[package]
name = "jujutsu-lib"
version = "0.5.1"
authors = ["Martin von Zweigbergk <martinvonz@google.com>"]
edition = "2021"
rust-version = "1.60"
license = "Apache-2.0"
description = "Library for Jujutsu (an experimental VCS)"
homepage = "https://github.com/martinvonz/jj"
repository = "https://github.com/martinvonz/jj"
documentation = "https://docs.rs/jujutsu"
readme = "../README.md"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[build-dependencies]
protobuf-codegen = "3.2.0"
version_check = "0.9.4"
[dependencies]
backoff = "0.4.0"
blake2 = "0.10.5"
bytes = "1.2.1"
byteorder = "1.4.3"
chrono = { version = "0.4.22", default-features = false, features = ["std", "clock"] }
config = { version = "0.13.2", default-features = false, features = ["toml"] }
digest = "0.10.5"
git2 = "0.15.0"
hex = "0.4.3"
itertools = "0.10.5"
maplit = "1.0.2"
once_cell = "1.16.0"
pest = "2.4.1"
pest_derive = "2.4.1"
protobuf = { version = "3.0.1", features = ["with-bytes"] }
rand = "0.8.5"
regex = "1.7.0"
serde_json = "1.0.87"
tempfile = "3.3.0"
thiserror = "1.0.37"
# thrift v0.17.0 (specified by hash for security reasons)
thrift = { git = "https://github.com/apache/thrift", rev = "4d493e867b349f3475203ef9848353b315203c51", default-features = false }
uuid = { version = "1.2.1", features = ["v4"] }
whoami = "1.2.3"
zstd = "0.11.2"
[dev-dependencies]
assert_matches = "1.5.0"
insta = "1.21.0"
num_cpus = "1.14.0"
test-case = "2.2.2"
testutils = { path = "testutils" }
[features]
default = ["legacy_protobuf"]
vendored-openssl = ["git2/vendored-openssl"]
# Enable upgrade of repositories created with storage backends based on
# Protobuf format (from before we switched to Thrift)
legacy_protobuf = []