6个版本
0.1.5 | 2023年10月1日 |
---|---|
0.1.4 | 2023年10月1日 |
0.1.1 | 2023年9月26日 |
#1 in #nntp
每月 34 次下载
17KB
263 行
ReK2 NNTP RFC4643 RFC3977 库
这是一个Rust库,提供与NNTP服务器交互的方式,符合RFC 3977和RFC 4643规范。
特性
- 文章发布
- 新闻组列表
- 从组中读取文章
- 身份验证(TLS/SSL)
安装
将以下内容添加到您的 Cargo.toml
[dependencies]
rek2_nntp = "0.1.3" # Replace with the actual version
运行 cargo build
来构建依赖项。
使用方法
导入库
首先,将以下导入添加到您的代码中
extern crate rek2_nntp;
身份验证
要验证身份,请使用 authenticate
函数
use rek2_nntp::authenticate;
// Example of how to authenticate using the library
let result = authenticate("host.com", "username", "password").await;
match result {
Ok(connection) => {
// Do something with the authenticated connection
}
Err(err) => {
println!("Failed to authenticate: {}", err);
}
}
列出新闻组
要列出新闻组,请使用 list_newsgroups
函数
use rek2_nntp::list_newsgroups;
let result = list_newsgroups(&mut authenticated_connection).await;
match result {
Ok(newsgroups) => {
for newsgroup in newsgroups {
println!("Newsgroup: {}", newsgroup.name);
}
}
Err(err) => {
println!("Failed to list newsgroups: {}", err);
}
}
从组中读取
要从新闻组中读取文章
use rek2_nntp::read_from_group;
let result = read_from_group(&mut authenticated_connection, "group.name", None).await;
match result {
Ok(articles) => {
for article in articles {
println!("Article: {}", article.header);
}
}
Err(err) => {
println!("Failed to read articles: {}", err);
}
}
向组发布
要将文章发布到新闻组
use rek2_nntp::post_to_group;
use rek2_nntp::Article;
let article = Article {
from: "[email protected]".to_string(),
subject: "Hello".to_string(),
body: "World".to_string(),
};
let result = post_to_group(&mut authenticated_connection, &article, &"newsgroup.name".to_string()).await;
match result {
Ok(_) => println!("Posted successfully"),
Err(err) => println!("Failed to post: {}", err),
}
贡献
您可以创建问题、拉取请求或改进文档来为该项目做出贡献。
许可
本项目采用GNU通用公共许可证v3.0许可。
依赖项
~10–22MB
~395K SLoC