Cargo.toml
Cargo.tomlhistorycomment on this file
| 1 | [workspace] |
| 2 | resolver = "3" |
| 3 | members = [ |
| 4 | "crates/kernel/ents-anchor", |
| 5 | "crates/kernel/ents-attrs", |
| 6 | "crates/kernel/ents-effect", |
| 7 | "crates/kernel/ents-gate", |
| 8 | "crates/kernel/ents-gate-rules", |
| 9 | "crates/kernel/ents-model", |
| 10 | "crates/kernel/ents-query", |
| 11 | "crates/kernel/ents-receive", |
| 12 | "crates/kernel/ents-sync", |
| 13 | "crates/kernel/ents-testutil", |
| 14 | "crates/cli/ents-lens", |
| 15 | "crates/cli/ents-web", |
| 16 | "crates/cli/git-ents", |
| 17 | "crates/forge/ents-forge", |
| 18 | "crates/kiln/ents-kiln", |
| 19 | "crates/substrate/gix-ref-store", |
| 20 | "crates/verify/ents-verify", |
| 21 | ] |
| 22 | |
| 23 | [workspace.package] |
| 24 | edition = "2024" |
| 25 | publish = false |
| 26 | license = "MIT OR Apache-2.0" |
| 27 | |
| 28 | [workspace.lints.rust] |
| 29 | unsafe_code = "forbid" |
| 30 | missing_docs = "warn" |
| 31 | |
| 32 | [workspace.dependencies] |
| 33 | ents-anchor = { path = "crates/kernel/ents-anchor" } |
| 34 | ents-attrs = { path = "crates/kernel/ents-attrs" } |
| 35 | ents-effect = { path = "crates/kernel/ents-effect" } |
| 36 | ents-forge = { path = "crates/forge/ents-forge" } |
| 37 | ents-gate = { path = "crates/kernel/ents-gate" } |
| 38 | ents-gate-rules = { path = "crates/kernel/ents-gate-rules" } |
| 39 | ents-kiln = { path = "crates/kiln/ents-kiln" } |
| 40 | ents-lens = { path = "crates/cli/ents-lens" } |
| 41 | ents-model = { path = "crates/kernel/ents-model" } |
| 42 | ents-query = { path = "crates/kernel/ents-query" } |
| 43 | ents-receive = { path = "crates/kernel/ents-receive" } |
| 44 | ents-sync = { path = "crates/kernel/ents-sync" } |
| 45 | ents-testutil = { path = "crates/kernel/ents-testutil" } |
| 46 | ents-verify = { path = "crates/verify/ents-verify" } |
| 47 | ents-web = { path = "crates/cli/ents-web" } |
| 48 | gix-ref-store = { path = "crates/substrate/gix-ref-store" } |
| 49 | arborium = { version = "2.18", default-features = false, features = [ |
| 50 | "lang-rust", |
| 51 | "lang-toml", |
| 52 | "lang-yaml", |
| 53 | "lang-json", |
| 54 | "lang-markdown", |
| 55 | "lang-asciidoc", |
| 56 | "lang-bash", |
| 57 | "lang-javascript", |
| 58 | "lang-typescript", |
| 59 | "lang-python", |
| 60 | "lang-c", |
| 61 | "lang-cpp", |
| 62 | "lang-go", |
| 63 | "lang-html", |
| 64 | "lang-css", |
| 65 | ] } |
| 66 | acdc-parser = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde" } |
| 67 | acdc-converters-core = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde" } |
| 68 | acdc-converters-html = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde", features = [ |
| 69 | "terminal", |
| 70 | ] } |
| 71 | acdc-converters-terminal = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde" } |
| 72 | ascent = "0.8" |
| 73 | askama = "0.16" |
| 74 | axum = "0.8" |
| 75 | cargo_metadata = "0.23" |
| 76 | figue = "5.0.0-rc.5" |
| 77 | facet = { version = "0.50.0-rc.0", features = ["reflect"] } |
| 78 | getrandom = "0.4" |
| 79 | facet-git-tree = { git = "https://github.com/git-ents/facet-git-tree" } |
| 80 | form_urlencoded = "1" |
| 81 | gix = "0.84" |
| 82 | gix-actor = "0.41" |
| 83 | gix-date = "0.15" |
| 84 | gix-features = { version = "0.48", features = ["zlib"] } |
| 85 | gix-hash = { version = "0.25", features = ["sha1"] } |
| 86 | gix-lock = "23.0" |
| 87 | gix-object = "0.61" |
| 88 | gix-odb = "0.81" |
| 89 | gix-pack = "0.71" |
| 90 | iddqd = "0.4" |
| 91 | lsp-server = "0.9" |
| 92 | lsp-types = "0.94" |
| 93 | object_store = { version = "0.14", default-features = false, features = [ |
| 94 | "aws", |
| 95 | ] } |
| 96 | maud = { version = "0.27", features = ["axum"] } |
| 97 | proptest = "1" |
| 98 | pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] } |
| 99 | rayon = "1" |
| 100 | rstest = "0.26" |
| 101 | semver = "1" |
| 102 | serde_json = "1" |
| 103 | spdx = "0.13" |
| 104 | ssh-key = { version = "0.6", features = ["ed25519"] } |
| 105 | stateright = "0.31" |
| 106 | target-lexicon = "0.13" |
| 107 | tempfile = "3" |
| 108 | thiserror = "2" |
| 109 | # The CLI's one HTTP client (`git ents login`): synchronous, so no tokio |
| 110 | # runtime for two requests, and rustls with the ring provider, so the |
| 111 | # musl static release cross-build (`cargo zigbuild`) stays pure Rust. |
| 112 | ureq = { version = "3", default-features = false, features = ["rustls"] } |
| 113 | tokio = { version = "1", features = [ |
| 114 | "rt-multi-thread", |
| 115 | "macros", |
| 116 | "net", |
| 117 | "process", |
| 118 | "io-util", |
| 119 | "sync", |
| 120 | ] } |
| 121 | tokio-postgres = { version = "0.7", default-features = false, features = [ |
| 122 | "runtime", |
| 123 | ] } |
| 124 | |
| 125 | # These lint configurations were originally pulled from [Evan Schwartz][1]. |
| 126 | # [1]: https://emschwartz.me/your-clippy-config-should-be-stricter/ |
| 127 | [workspace.lints.clippy] |
| 128 | |
| 129 | # Don't Panic - prevent panics from unwraps and unsafe slicing or indexing |
| 130 | string_slice = "warn" |
| 131 | indexing_slicing = "warn" |
| 132 | unwrap_used = "warn" |
| 133 | panic = "warn" |
| 134 | todo = "warn" |
| 135 | unimplemented = "warn" |
| 136 | unreachable = "warn" |
| 137 | get_unwrap = "warn" |
| 138 | unwrap_in_result = "warn" |
| 139 | unchecked_time_subtraction = "warn" |
| 140 | panic_in_result_fn = "warn" |
| 141 | |
| 142 | # Optional - see post for caveats |
| 143 | expect_used = "warn" |
| 144 | arithmetic_side_effects = "warn" |
| 145 | |
| 146 | # Don't Fail Silently - prevent dropped futures and swallowed errors |
| 147 | let_underscore_future = "warn" |
| 148 | let_underscore_must_use = "warn" |
| 149 | unused_result_ok = "warn" |
| 150 | map_err_ignore = "warn" |
| 151 | assertions_on_result_states = "warn" |
| 152 | |
| 153 | # Don't Do Bad Async Stuff - prevent deadlocks and concurrency bugs |
| 154 | await_holding_lock = "warn" |
| 155 | await_holding_refcell_ref = "warn" |
| 156 | if_let_mutex = "warn" # only relevant on editions before 2024 |
| 157 | large_futures = "warn" |
| 158 | |
| 159 | # Don't Do Unsafe Things with Memory |
| 160 | mem_forget = "warn" |
| 161 | undocumented_unsafe_blocks = "warn" |
| 162 | multiple_unsafe_ops_per_block = "warn" |
| 163 | unnecessary_safety_doc = "warn" |
| 164 | unnecessary_safety_comment = "warn" |
| 165 | |
| 166 | # Don't Do Potentially Incorrect Things with Numbers |
| 167 | float_cmp = "warn" |
| 168 | float_cmp_const = "warn" |
| 169 | lossy_float_literal = "warn" |
| 170 | cast_sign_loss = "warn" |
| 171 | invalid_upcast_comparisons = "warn" |
| 172 | cast_possible_wrap = "warn" |
| 173 | cast_precision_loss = "warn" |
| 174 | cast_possible_truncation = "warn" |
| 175 | |
| 176 | # Don't Do Bad Things That are Easy to Avoid |
| 177 | rc_mutex = "warn" |
| 178 | debug_assert_with_mut_call = "warn" |
| 179 | iter_not_returning_iterator = "warn" |
| 180 | expl_impl_clone_on_copy = "warn" |
| 181 | infallible_try_from = "warn" |
| 182 | dbg_macro = "warn" |
| 183 | |
| 184 | # Don't `allow` Your Way Around These Lints - every suppression must be |
| 185 | # a deliberate #[expect(..., reason = "…")] rather than a silent #[allow] |
| 186 | allow_attributes = "warn" |
| 187 | allow_attributes_without_reason = "warn" |