brokaw

Crates.iobrokaw
lib.rsbrokaw
version0.2.0
sourcesrc
created_at2020-06-11 03:00:45.58882
updated_at2020-06-29 02:56:28.31768
description📰 An NNTP client liberary. More at 11! 📰
homepage
repositoryhttps://github.com/sgg/brokaw
max_upload_size
id252584
size147,989
Samani G. Gikandi (sgg)

documentation

https://docs.rs/brokaw

README

Brokaw

📰 A Usenet/NNTP library. More at 11! 📰

GitHub Actions Crates.io version docs.rs docs

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.

Getting Started

[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!

Features

  • TLS (aka NNTPS) courtesy of native-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
  • All Most commands in RFC 3977 (POST, NEWGROUP, NEWNEWS, and LISTGROUP have yet to be implemented)

Missing Features

  • Compression (RFC 8054, Astraweb, Giganews, etc)
  • STARTTLS (RFC 4642)
  • SASL Authentication (RFC 4643)
  • Most of RFC 2980. XHDR and XOVER are supported
  • Connection pools, fine grained connection tuning
  • Async connection/client
  • Article posting
Commit count: 40

cargo fmt