Skip to content

sgg/brokaw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brokaw

📰 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.

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

About

A modern Usenet library in Rust 📰

Resources

License

Stars

Watchers

Forks

Packages

No packages published