| [workspace] |
| members = [ |
| "submerge/crdt", |
| "submerge/crdt/fuzz", |
| "submerge/distributed_time", |
| "submerge/distributed_time/fuzz", |
| "submerge/submerge", |
| "submerge/submerge/fuzz", |
| "submerge/submerge_java", |
| "submerge/submerge_internal_proto", |
| "build_scripts", |
| ] |
| default-members = ["build_scripts"] |
| |
| resolver = "2" |
| |
| [workspace.lints.rust] |
| unsafe_code = "deny" |
| missing_docs = "deny" |
| trivial_casts = "deny" |
| trivial_numeric_casts = "deny" |
| unused_extern_crates = "deny" |
| unused_import_braces = "deny" |
| unused_results = "deny" |
| unexpected_cfgs = { level = "warn", check-cfg = ["cfg(fuzzing)", "cfg(rust_analyzer)"] } |
| unsafe_op_in_unsafe_fn = "forbid" |
| |
| [workspace.lints.clippy] |
| cast_possible_truncation = "warn" |
| cast_possible_wrap = "warn" |
| cast_precision_loss = "warn" |
| cast_sign_loss = "warn" |
| indexing_slicing = "deny" |
| missing_safety_doc = "deny" # This should really be "forbid", but some macros are not compatible |
| multiple_unsafe_ops_per_block = "deny" |
| panic = "deny" |
| undocumented_unsafe_blocks = "deny" # This should really be "forbid", but some macros are not compatible |
| unnecessary_safety_comment = "deny" |
| unnecessary_safety_doc = "deny" |
| unwrap_used = "deny" |
| |
| [workspace.package] |
| version = "0.1.0" |
| edition = "2021" |
| publish = false |
| license = "Apache-2.0" |
| |
| [workspace.dependencies] |
| # Dependencies from this repo |
| cmd_runner = { path = "../common/cmd_runner" } |
| crdt = { path = "submerge/crdt" } |
| distributed_time = { path = "submerge/distributed_time" } |
| handle_map = { path = "../common/handle_map" } |
| pourover = { path = "../common/pourover" } |
| submerge = { path = "submerge/submerge" } |
| submerge_internal_proto = { path = "submerge/submerge_internal_proto" } |
| |
| # Dependencies from crates.io |
| anyhow = "1.0.86" |
| arbitrary = { version = "1.3.2", features = ["derive"] } |
| arrayvec = "0.7.4" |
| bincode = "1.3.3" |
| clap = { version = "4.5.13", features = ["derive"] } |
| derive_fuzztest = "0.1.3" |
| derive-where = "1.2.7" |
| env_logger = "0.11.7" |
| hex = "0.4.3" |
| itertools = "0.13.0" |
| jni = "0.21.1" |
| lazy_static = "1.5.0" |
| libfuzzer-sys = "0.4" |
| log = "0.4.21" |
| num-traits = "0.2.17" |
| protobuf = "3.7.2" |
| protobuf-codegen = "3.7.2" |
| serde = { version = "1.0.193", features = ["serde_derive"] } |
| serde_json = "1.0.117" |
| thiserror = "1.0.61" |
| xshell = "0.2.6" |
| |
| [profile.test] |
| # speed up test execution |
| opt-level = 3 |
| |
| [profile.bench] |
| # Use LTO to allow cross-crate inlining. |
| # fat vs thin: thin compiles a lot faster, and doesn't seem any slower. |
| lto = "thin" |
| |
| # build profile optimized for size |
| [profile.release-min-size] |
| inherits = "release" |
| panic = "abort" |
| codegen-units = 1 |
| lto = true |
| # z optimizes for size |
| opt-level = "z" |
| strip = true |