📰 A Usenet/NNTP library. More at 11! 📰
Brokaw is a typed Usenet library for the dozens of people still reading Netnews. It is very much in development and provides no guarantees about stability.
Brokaw (mostly) implements RFC 3977 and several popular extensions.
[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(())
}
Check out in the repo the examples as well!
- TLS (aka
NNTPS
) courtesy ofnative-tls
- A high-level client API (
NntpClient
) for simple interactions with news servers - A low-level connection API (
NntpConnection
) for more specialized use cases AUTHINFO USER/PASS
Authentication (RFC 4643- Typed commands and responses
AllMost commands in RFC 3977 (POST
,NEWGROUP
,NEWNEWS
, andLISTGROUP
have yet to be implemented)
- Compression (RFC 8054, Astraweb, Giganews, etc)
- STARTTLS (RFC 4642)
- SASL Authentication (RFC 4643)
- Most of RFC 2980.
XHDR
andXOVER
are supported - Connection pools, fine grained connection tuning
- Async connection/client
- Article posting