Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: Iecbe7a5561caf7bf7f770a277b11f3816a6a6964
143 lines
4.7 KiB
TOML
143 lines
4.7 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/server",
|
|
"crates/evaluator",
|
|
"crates/queue-runner",
|
|
"crates/common",
|
|
"crates/migrate-cli",
|
|
]
|
|
resolver = "3"
|
|
|
|
[workspace.package]
|
|
authors = [ "NotAShelf <raf@notashelf.dev" ]
|
|
edition = "2024"
|
|
license = "MPL-2.0"
|
|
repository = "https://gitub.com/feel-co/fc"
|
|
rust-version = "1.95.0" # nightly
|
|
version = "0.2.0-dev"
|
|
|
|
[workspace.dependencies]
|
|
# Components
|
|
fc-common = { path = "./crates/common" }
|
|
fc-evaluator = { path = "./crates/evaluator" }
|
|
fc-queue-runner = { path = "./crates/queue-runner" }
|
|
fc-server = { path = "./crates/server" }
|
|
|
|
|
|
anyhow = "1.0.101"
|
|
argon2 = "0.5.3"
|
|
askama = "0.15.4"
|
|
async-stream = "0.3.6"
|
|
axum = "0.8.8"
|
|
axum-extra = { version = "0.12.5", features = [ "typed-header" ] }
|
|
chrono = { version = "0.4.42", features = [ "serde" ] }
|
|
clap = { version = "4.5.51", features = [ "derive" ] }
|
|
config = "0.15.19"
|
|
dashmap = "6.1.0"
|
|
futures = "0.3.31"
|
|
git2 = "0.20.4"
|
|
hex = "0.4.3"
|
|
hmac = "0.12.1"
|
|
lettre = { version = "0.11.19", default-features = false, features = [
|
|
"tokio1-rustls-tls",
|
|
"smtp-transport",
|
|
"builder",
|
|
] }
|
|
libc = "0.2.180"
|
|
nix-nar = "0.3.1"
|
|
oauth2 = "5.0.0"
|
|
regex = "1.12.3"
|
|
reqwest = { version = "0.13.2", default-features = false, features = [ "json", "rustls" ] }
|
|
serde = { version = "1.0.228", features = [ "derive" ] }
|
|
serde_json = "1.0.149"
|
|
sha2 = "0.10.9"
|
|
sqlx = { version = "0.8.6", features = [ "runtime-tokio-rustls", "postgres", "chrono", "uuid", "migrate" ] }
|
|
subtle = "2.6.1"
|
|
tar = "0.4.44"
|
|
tempfile = "3.24.0"
|
|
thiserror = "2.0.18"
|
|
tokio = { version = "1.49.0", features = [ "full" ] }
|
|
tokio-util = { version = "0.7.18", features = [ "io" ] }
|
|
toml = "1.0.2"
|
|
tower = "0.5.3"
|
|
tower-http = { version = "0.6.8", features = [ "cors", "trace", "limit", "fs", "set-header" ] }
|
|
tracing = "0.1.41"
|
|
tracing-subscriber = { version = "0.3.20", features = [ "env-filter", "json" ] }
|
|
urlencoding = "2.1.3"
|
|
uuid = { version = "1.18.1", features = [ "v4", "serde" ] }
|
|
xz2 = "0.1.7"
|
|
|
|
# See:
|
|
# <https://doc.rust-lang.org/rustc/lints/listing/allowed-by-default.html>
|
|
[workspace.lints.clippy]
|
|
cargo = { level = "warn", priority = -1 }
|
|
complexity = { level = "warn", priority = -1 }
|
|
nursery = { level = "warn", priority = -1 }
|
|
pedantic = { level = "warn", priority = -1 }
|
|
perf = { level = "warn", priority = -1 }
|
|
style = { level = "warn", priority = -1 }
|
|
|
|
# The lint groups above enable some less-than-desirable rules, we should manually
|
|
# enable those to keep our sanity.
|
|
absolute_paths = "allow"
|
|
arbitrary_source_item_ordering = "allow"
|
|
cast_possible_truncation = "allow"
|
|
cast_possible_wrap = "allow"
|
|
cast_precision_loss = "allow"
|
|
cast_sign_loss = "allow"
|
|
clone_on_ref_ptr = "warn"
|
|
dbg_macro = "warn"
|
|
empty_drop = "warn"
|
|
empty_structs_with_brackets = "warn"
|
|
exit = "warn"
|
|
filetype_is_file = "warn"
|
|
get_unwrap = "warn"
|
|
implicit_return = "allow"
|
|
infinite_loop = "warn"
|
|
map_with_unused_argument_over_ranges = "warn"
|
|
missing_docs_in_private_items = "allow"
|
|
multiple_crate_versions = "allow" # :(
|
|
non_ascii_literal = "allow"
|
|
non_std_lazy_statics = "warn"
|
|
pathbuf_init_then_push = "warn"
|
|
pattern_type_mismatch = "allow"
|
|
question_mark_used = "allow"
|
|
rc_buffer = "warn"
|
|
rc_mutex = "warn"
|
|
rest_pat_in_fully_bound_structs = "warn"
|
|
similar_names = "allow"
|
|
single_call_fn = "allow"
|
|
std_instead_of_core = "allow"
|
|
too_long_first_doc_paragraph = "allow"
|
|
too_many_lines = "allow"
|
|
undocumented_unsafe_blocks = "warn"
|
|
unnecessary_safety_comment = "warn"
|
|
unused_result_ok = "warn"
|
|
unused_trait_names = "allow"
|
|
|
|
# False positive:
|
|
# clippy's build script check doesn't recognize workspace-inherited metadata
|
|
# which means in our current workspace layout, we get pranked by Clippy.
|
|
cargo_common_metadata = "allow"
|
|
|
|
# In the honor of a recent Cloudflare regression
|
|
panic = "deny"
|
|
unwrap_used = "deny"
|
|
|
|
# Less dangerous, but we'd like to know
|
|
# Those must be opt-in, and are fine ONLY in tests and examples.
|
|
expect_used = "warn"
|
|
print_stderr = "warn"
|
|
print_stdout = "warn"
|
|
todo = "warn"
|
|
unimplemented = "warn"
|
|
unreachable = "warn"
|
|
|
|
[profile.dev]
|
|
debug = true
|
|
opt-level = 0
|
|
|
|
[profile.release]
|
|
lto = true
|
|
opt-level = "z"
|
|
strip = true
|