mirror of
https://github.com/logos-messaging/libchat.git
synced 2026-08-12 10:03:13 +00:00
libchat's hand-written FFI to liblogosdelivery is replaced by the upstream `waku-bindings` crate. It is unpublished and its build script compiles the native library from Nim sources in its own submodule, so it is consumed from a checkout under vendor/ as its README prescribes, pinned as a submodule. The macOS link frameworks and the chronicles log-level define ride in this crate's .cargo/config.toml: a path dependency's config is not inherited, and the native node's logging is compile-time only (its runtime logLevel is a no-op), so without the define the library floods stdout and no TUI on top is readable. The vendor directory is excluded from the workspace so its Nim build is not dragged into `--workspace` builds, fmt or clippy. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ai43sF2rymPFMG9iki9fwL
68 lines
2.2 KiB
TOML
68 lines
2.2 KiB
TOML
|
|
[workspace]
|
|
resolver = "3"
|
|
|
|
members = [
|
|
"bin/channel-chat",
|
|
"bin/chat-cli",
|
|
"core/account",
|
|
"core/conversations",
|
|
"core/crypto",
|
|
"core/double-ratchets",
|
|
"core/integration_tests_core",
|
|
"core/shared-traits",
|
|
"core/sqlite",
|
|
"core/storage",
|
|
"crates/logos-chat",
|
|
"crates/generic-chat",
|
|
"extensions/components",
|
|
"extensions/embedded-logos-delivery",
|
|
]
|
|
|
|
# A path dependency living inside the workspace directory is otherwise pulled in
|
|
# as a member automatically, which would put the vendored bindings — and the
|
|
# whole Nim build behind them — into `--workspace` builds, `cargo fmt --all` and
|
|
# clippy. Excluding the directory keeps it a plain path dependency: only the
|
|
# crates that actually depend on it build it.
|
|
exclude = ["vendor/logos-delivery-rust-bindings"]
|
|
|
|
default-members = [
|
|
"core/account",
|
|
"core/conversations",
|
|
"core/crypto",
|
|
"core/double-ratchets",
|
|
"core/integration_tests_core",
|
|
"core/shared-traits",
|
|
"core/sqlite",
|
|
"core/storage",
|
|
"crates/generic-chat",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
# Internal Workspace dependency declarations (sorted)
|
|
logos-account = { path = "core/account" }
|
|
chat-sqlite = { path = "core/sqlite" }
|
|
components = { path = "extensions/components" }
|
|
crypto = { path = "core/crypto" }
|
|
embedded-logos-delivery = { path = "extensions/embedded-logos-delivery" }
|
|
libchat = { path = "core/conversations" }
|
|
logos-chat = { path = "crates/logos-chat" }
|
|
logos-generic-chat = { path = "crates/generic-chat" }
|
|
shared-traits = { path = "core/shared-traits" }
|
|
storage = { path = "core/storage" }
|
|
|
|
# The upstream logos-delivery bindings. Unpublished, and its build.rs builds the
|
|
# native library out of its own `vendor/` submodule, so it is consumed from the
|
|
# checkout under vendor/ rather than from a registry — as its README prescribes.
|
|
waku-bindings = { path = "vendor/logos-delivery-rust-bindings/waku-bindings" }
|
|
|
|
# External Workspace dependency declarations (sorted)
|
|
base64 = "0.22"
|
|
blake2 = "0.10"
|
|
crossbeam-channel = "0.5"
|
|
|
|
# Panicking across FFI boundaries is UB; chat-cli registers Rust callbacks
|
|
# that liblogosdelivery invokes, so abort instead of unwinding.
|
|
[profile.release]
|
|
panic = "abort"
|