5 个版本
0.2.0 | 2024 年 7 月 31 日 |
---|---|
0.1.0 | 2024 年 7 月 28 日 |
0.1.0-pre.5 | 2024 年 7 月 22 日 |
0.1.0-pre.2 | 2024 年 7 月 1 日 |
#246 in Web 编程
521 每月下载量
65KB
1K SLoC

Feedlynx
Feedlynx 在磁盘上管理 Atom 源。每次收到添加链接的请求时,都会从 URL 获取页面以确定标题和描述。然后使用这些信息在源中添加新的条目。如果链接来自 YouTube,则会生成视频的嵌入。
安装
预编译的二进制文件
为多个平台提供了预编译的二进制文件
- FreeBSD 13+ amd64
- Linux x86_64
- MacOS Universal
- Windows x86_64
请查看 最新版本 中的下载链接。
从源代码构建
请参阅下面的 从源代码构建。
集成
浏览器扩展
请参阅 https://github.com/wezm/feedlynx-ext 以获取浏览器扩展。
Apple 快捷指令 (iOS、iPadOS、macOS)
此快捷指令允许您使用系统共享面板将链接添加到 Feedlynx。
https://www.icloud.com/shortcuts/2bc22a709551404a93d55aaf6b0615b4
使用方法
feedlynx path/to/feed.xml
Feedlynx 需要设置两个环境变量
FEEDLYNX_PRIVATE_TOKEN
用于对添加新链接的请求进行身份验证。FEEDLYNX_FEED_TOKEN
用于生成源路径。
这两个令牌必须至少为 32 个字符长且难以猜测。可以使用 feedlynx gen-token
生成合适的值,该命令将打印一个随机生成的令牌。
以下环境变量可以设置(可选)
FEEDLYNX_ADDRESS
—— 要提供的服务地址,默认127.0.0.1
。FEEDLYNX_PORT
—— 要提供的服务端口,默认8001
。FEEDLYNX_LOG
—— 控制日志级别和过滤。
使用 feedlynx
与源文件路径启动 feedlynx
,以启动服务器。如果文件不存在,则会创建它。服务器启动时,会打印出服务器上的源路径。这将用于在您的订阅器中订阅源。
注意:订阅源最多包含50条项目,当添加新项目时,较旧的项目将被删除。添加此限制是为了阻止订阅源无限增长,因为Feedlynx无法知道何时读取了项目。RSS阅读器需要在有新项目时下载和处理整个订阅源,因此设置上限有助于限制这项工作的规模和范围。
示例
FEEDLYNX_PRIVATE_TOKEN=ExampleExampleExampleExample1234 \
FEEDLYNX_FEED_TOKEN=FeedFeedFeedFeedFeedFeedFeedFeed \
feedlynx feed.xml
[2024-06-24T08:52:11Z INFO feedlynx] HTTP server running on: http://127.0.0.1:8001
[2024-06-24T08:52:11Z INFO feedlynx::server] feed available at /feed/FeedFeedFeedFeedFeedFeedFeedFeed
如果这个Feedlynx实例托管在 example.com
上,订阅源的URL将是 https://example.com/feed/FeedFeedFeedFeedFeedFeedFeedFeed
。
在Windows PowerShell终端中,上面的示例看起来可能像这样
powershell -Command { $env:FEEDLYNX_PRIVATE_TOKEN="ExampleExampleExampleExample1234"; $env:FEEDLYNX_FEED_TOKEN="FeedFeedFeedFeedFeedFeedFeedFeed"; feedlynx.exe feed.xml }
日志记录
日志记录通过 FEEDLYNX_LOG
环境变量进行控制。日志级别从最不详细到最详细依次是
off
(无日志)错误
警告
信息
调试
跟踪
默认日志级别是 info
。要将日志级别更改为 debug
,使用 FEEDLYNX_LOG=debug
。 FEEDLYNX_LOG
变量还支持过滤。例如,要仅显示来自 feedlynx
的 trace
消息(而不显示它所使用的某些库的消息),您将指定: FEEDLYNX_LOG=trace=feedlynx
。有关更多详细信息,请参阅env_logger文档。
在 debug
级别,Feedlynx将为每个接收到的请求打印类似Web服务器样式的行。
[2024-06-24T07:48:39Z DEBUG feedlynx::server] 127.0.0.1:50202 "GET /feed/FeedFeedFeedFeedFeedFeedFeedFeed" 200 "curl/8.8.0"
这包括远程地址、请求方法、路径、响应状态码和客户端用户代理。
API
服务器公开了三个端点
GET /
— 显示有关Feedlynx服务器的简要页面。POST /add
— 添加新链接。需要以application/x-www-form-urlencoded
(Web表单)格式发送正文。字段url
(必需)— 要添加的链接。token
(必需)—FEEDLYNX_PRIVATE_TOKEN
的值。title
(可选)— 链接的标题。
GET /feed/<FEEDLYNX_FEED_TOKEN>
— 生成的订阅源。使用此链接在您的订阅源阅读器中订阅订阅源。
cURL 示例
以下cURL命令将 https://github.com/wezm/feedlynx
添加到Feedlynx订阅源
curl -d 'url=https://github.com/wezm/feedlynx' \
-d 'token=ExampleExampleExampleExample1234' \
https://127.0.0.1:8001/add
从源代码构建
最低支持的Rust版本 1.72.1
Feedlynx是用Rust实现的。有关安装工具链的说明,请参阅Rust网站安装说明。
从Git Checkout或发布归档
使用以下命令构建二进制文件
cargo build --release --locked
二进制文件将位于 target/release/feedlynx
。
从crates.io
cargo install feedlynx
编译时选项(Cargo功能)
Feedlynx支持以下编译时选项
rust-tls
(默认):使用rust-tls
包来处理TLS连接。native-tls
:使用native-tls
包来处理TLS连接。在Windows上构建时,这可能是一个更好的选项。
要使用 native-tls
构建,按如下方式调用Cargo
cargo build --release --locked --no-default-features --features native-tls
如果为操作系统注册表打包Feedlynx,使用native-tls
可能是有意义的。在Linux和BSD系统上,这将添加对OpenSSL的依赖。
使用容器(Docker或Podman)
仓库中包含一个Dockerfile。可以像这样构建一个轻量级的容器镜像
docker build -t feedlynx .
容器期望在/data
中找到feed路径,因此我们可以使用卷挂载以实现持久存储
docker run -p 127.0.0.1:8001:8001 -v ./data:/data \
-e FEEDLYNX_PRIVATE_TOKEN=ExampleExampleExampleExample1234 \
-e FEEDLYNX_FEED_TOKEN=FeedFeedFeedFeedFeedFeedFeedFeed /data/feed.xml
然后可以在https://127.0.0.1:8001访问应用程序,就像它在容器外运行一样。如果使用Podman,只需将docker
命令替换为podman
。
致谢
Feedlynx根据Apache 2.0许可证在以下项目的条款下整合了代码
可爱的Feedlynx标志由@DiDoesDigital绘制。
许可证
该项目根据您选择的双许可协议
- Apache License,版本2.0 (LICENSE-APACHE)
- MIT许可证 (LICENSE-MIT)
任意选择。
依赖关系
~7–19MB
~336K SLoC