[package] name = "lightrail" version = "0.1.0" edition = "2024" [dependencies] axum = "0.8.8" base64 = "0.22.1" bytes = "1" cardinality-estimator-safe = { version = "4.0.2", features = ["with_serde"] } cid = { version = "0.11", default-features = false, features = ["alloc"] } clap = { version = "4.5.60", features = ["derive", "env"] } dashmap = "5" fastrand = "2.3.0" fjall = "3.0.3" futures = "0.3" governor = "0.6" http = "1" jacquard-api = { git = "https://tangled.org/nonbinary.computer/jacquard", rev = "f2f45e460bfce6dfa4319f29d1cfc19011cd3c50", default-features = false, features = ["com_atproto", "streaming"] } jacquard-axum = { version = "0.9.6", default-features = false, features = ["tracing"] } jacquard-common = { version = "0.9.5", features = ["websocket", "reqwest-client", "streaming"] } jacquard-derive = "0.9.5" jacquard-identity = "0.9.5" jacquard-lexicon = "0.9.5" jacquard-repo = { git = "https://tangled.org/nonbinary.computer/jacquard", rev = "f2f45e460bfce6dfa4319f29d1cfc19011cd3c50" } metrics = "0.24.3" metrics-exporter-prometheus = { version = "0.18.1", features = ["http-listener"] } mini-moka = "0.10" n0-future = "0.1" postcard = { version = "1", features = ["alloc"] } repo-stream = { version = "0.5.0-alpha.5", features = ["jacquard"] } reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] } rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs"] } rustversion = "1" serde = { version = "1", features = ["derive"] } serde_ipld_dagcbor = "0.6" serde_json = "1" subtle = "2.6.1" thiserror = "2.0.18" tokio = { version = "1.49.0", features = ["full"] } tokio-util = { version = "0.7", features = ["rt", "io-util"] } tracing = "0.1.44" tracing-subscriber = { version = "0.3", features = ["env-filter"] } [dev-dependencies] jacquard-lexicon = { version = "0.9.5", features = ["codegen"] } serde_json = "1" wiremock = "0.6" # jacquard-repo and jacquard-api are pinned to a git rev for fixes not yet on # crates.io. The patch sections keep everything unified: # # [patch.crates-io] makes repo-stream (which depends on crates.io jacquard-repo) # resolve to the same git copy we use directly, avoiding a two-versions split. # # [patch."git url"] redirects the git workspace siblings that don't need to # come from git back to the crates.io copies. [patch.crates-io] jacquard-repo = { git = "https://tangled.org/nonbinary.computer/jacquard", rev = "f2f45e460bfce6dfa4319f29d1cfc19011cd3c50" } [patch."https://tangled.org/nonbinary.computer/jacquard"] jacquard-common = { version = "0.9.5" } jacquard-derive = { version = "0.9.5" } jacquard-lexicon = { version = "0.9.5" } [[example]] name = "lexgen" path = "examples/lexgen.rs" [[example]] name = "list-repo-collections" path = "examples/list_repo_collections.rs" [[example]] name = "enqueue-resync" path = "examples/enqueue_resync.rs"