| 1 |
[package] |
| 2 |
name = "bb-core" |
| 3 |
version.workspace = true |
| 4 |
edition.workspace = true |
| 5 |
description = "Core orchestrator and plugin manager for BalancedBreakfast" |
| 6 |
|
| 7 |
[dependencies] |
| 8 |
bb-interface.workspace = true |
| 9 |
bb-db.workspace = true |
| 10 |
bb-feed.workspace = true |
| 11 |
sqlx.workspace = true |
| 12 |
tokio.workspace = true |
| 13 |
thiserror.workspace = true |
| 14 |
tracing.workspace = true |
| 15 |
serde.workspace = true |
| 16 |
serde_json.workspace = true |
| 17 |
chrono.workspace = true |
| 18 |
|
| 19 |
# Encryption for plugin secrets |
| 20 |
aes-gcm = { workspace = true } |
| 21 |
base64 = { workspace = true } |
| 22 |
rand = { workspace = true } |
| 23 |
|
| 24 |
# Keychain access for encryption key |
| 25 |
keyring.workspace = true |
| 26 |
|
| 27 |
# Zeroing key material on drop |
| 28 |
zeroize.workspace = true |
| 29 |
|
| 30 |
# Lock primitives (no poisoning) |
| 31 |
parking_lot.workspace = true |
| 32 |
|
| 33 |
# Rhai scripting engine for plugins |
| 34 |
rhai = { version = "1.24.0", features = ["sync", "serde"] } |
| 35 |
|
| 36 |
# HTTP client for plugin scripts (blocking) |
| 37 |
ureq = { version = "2.12.1", features = ["json"] } |
| 38 |
|
| 39 |
# XML parsing for RSS/Atom feeds in plugins |
| 40 |
roxmltree.workspace = true |
| 41 |
|
| 42 |
# HTML to markdown conversion |
| 43 |
pter = "0.1" |
| 44 |
|
| 45 |
# URL parsing for tracker stripping |
| 46 |
url = "2" |
| 47 |
|
| 48 |
# Regex for HTML URL rewriting |
| 49 |
regex = "1" |
| 50 |
|
| 51 |
# HTML sanitization for untrusted feed content |
| 52 |
docengine = { path = "../../../../MNW/shared/docengine" } |
| 53 |
|
| 54 |
# Concurrent fetching |
| 55 |
futures = { workspace = true } |
| 56 |
|
| 57 |
# Article extraction (reader view) |
| 58 |
readable-readability = "0.4" |
| 59 |
|