#nntp #usenet #api-client #netnews

brokaw

📰 一个 NNTP 客户端库。更多信息请见11!📰

3 个版本 (重大更新)

0.2.0 2020年6月29日
0.1.0 2020年6月11日
0.0.1-alpha.12020年6月11日

#nntp 中排名第 2

MIT 许可证

105KB
2K SLoC

Brokaw

📰 一个 Usenet/NNTP 库。更多信息请见11!📰

Brokaw 是一个为仍在阅读 Netnews 的数十人提供的类型化 Usenet 库。它正在积极开发中,并且不提供关于稳定性的保证。

Brokaw(主要)实现了 RFC 3977 和几个流行的扩展。

入门指南

[dependencies]
brokaw = "*"
use brokaw::client::ClientConfig;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = ClientConfig::default().connect(("news.mozilla.org", 119))?;

    client.capabilities().iter()
        .for_each(|c| println!("{}", c));

    Ok(())
}

查看仓库中的示例 示例

特性

  • native-tls 提供的 TLS(也称为 NNTPS
  • 用于与新闻服务器进行简单交互的高级客户端 API(NntpClient
  • 用于更多专用用例的低级连接 API(NntpConnection
  • AUTHINFO USER/PASS 认证(RFC 4643
  • 类型化命令和响应
  • 所有 大多数命令在 RFC 3977 中都尚未实现(POSTNEWGROUPNEWNEWSLISTGROUP

缺失的特性

  • 压缩(RFC 8054、Astraweb、Giganews 等)
  • STARTTLS(RFC 4642
  • SASL 认证(RFC 4643
  • 大多数 RFC 2980。支持 XHDRXOVER
  • 连接池,精细的连接调整
  • 异步连接/客户端
  • 文章发布

依赖项

~2–11MB
~138K SLoC