-
Notifications
You must be signed in to change notification settings - Fork 4
/
Cargo.toml
95 lines (82 loc) · 3.17 KB
/
Cargo.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
[package]
name = "rss-funnel"
description = "A composable feed processing pipeline"
version = "0.1.4"
edition = "2021"
license-file = "LICENSE"
readme = "README.org"
repository = "https://github.com/shouya/rss-funnel"
homepage = "https://github.com/shouya/rss-funnel"
documentation = "https://docs.rs/rss-funnel"
keywords = ["rss", "feed", "cli"]
categories = ["command-line-interface", "web-programming"]
[features]
default = ["inspector-ui"]
inspector-ui = ["dep:rust-embed"]
# Enable this feature to build on targets unsupported by rquickjs.
# List of supported targets:
# https://github.com/DelSkayn/rquickjs/tree/master/sys/src/bindings
bindgen = ["rquickjs/bindgen"]
[dependencies]
# Async runtime, utility and helper crates
async-trait = "0.1.77"
thiserror = "1.0.57"
futures = "0.3.30"
itertools = "0.12.1"
paste = "1.0.14"
tokio = { version = "1.36.0", features = ["macros", "net", "rt-multi-thread", "sync", "signal"] }
lazy_static = "1.4.0"
blake3 = "1.5.1"
# Command line and config parsing
clap = { version = "4.5.1", features = ["derive", "env"] }
serde = { version = "1.0.197", features = ["derive", "rc"] }
serde_yaml = "0.9.32"
duration-str = { version = "0.11.2", default-features = false, features = ["serde"] }
# webserver
axum-macros = "0.4.1"
axum = { version = "0.7.4", features = ["json"] }
axum-extra = { version = "0.9.2", features = ["cookie"] }
tower = "0.4.13"
tower-http = { version = "0.5.2", features = ["compression-gzip", "cors"] }
notify = { version = "6.1.1", default-features = false, features = ["macos_kqueue"] }
# Feed formats support
atom_syndication = { version = "0.12.2", features = ["with-serde"] }
rss = { version = "2.0.7", features = ["serde"] }
http = "1.0.0"
url = { version = "2.5.0", features = ["serde"] }
mime = "0.3.17"
chrono = "0.4.34"
# webui (inspector) support
rust-embed = { version = "8.3.0", features = ["include-exclude"], optional = true }
schemars = { git = "https://github.com/shouya/schemars", features = ["url", "preserve_order"] }
rand = "0.8.5" # for generating session_id
# HTML manipulation in the feeds
scraper = "0.19.0"
ego-tree = "0.6.2"
# for extracting article content from HTML, used in simplify_html filter
readability = { version = "0.3.0", default-features = false }
html5ever = "0.26.0"
htmlescape = "0.3.1"
lol_html = "1.2.1"
urlencoding = "2.1.3"
base64 = "0.22.0"
# JS runtime crates
rquickjs = { version = "0.5.1", features = ["loader", "parallel", "macro", "futures", "exports", "either"] }
serde_json = "1.0.114" # for data transfer with the JS runtime
either = "1.10.0" # used for returning sum types from the JS runtime
# Web client (blocking and async both used, blocking used in the JS runtime)
reqwest = { version = "0.12.2", default-features = false, features = ["blocking", "trust-dns", "socks", "http2", "rustls-tls", "stream"] }
encoding_rs = "0.8.33"
lru = "0.12.3"
# Used in sanitize filter to remove/replace text contents
regex = "1.10.3"
# Used in domain matching
glob-match = "0.2.1"
# Logging
tracing = { version = "0.1.40"}
tracing-subscriber = "0.3.18"
maud = { version = "0.26.0", features = ["axum"] }
ammonia = "4.0.0"
serde_with = "3.9.0"
[patch.crates-io]
ego-tree = { git = "https://github.com/shouya/ego-tree.git" }