Skip to content

mjc/nntp-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,394 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nntp-proxy

High-throughput NNTP proxy written in Rust.

nntp-proxy sits between NNTP clients and one or more backend servers. It gives you a single local endpoint while handling backend selection, pooling, authentication, optional caching, and metrics in one place.

What it does

  • Shares multiple backend servers across multiple clients
  • Pools and reuses backend connections instead of having every client open its own
  • Supports backend auth, outbound TLS, health checks, and connection limits
  • Tracks article availability and can optionally cache article bodies
  • Runs as one binary: nntp-proxy

Client-facing connections are plain NNTP only. TLS support is for outbound backend connections, not for the local listener.

Performance snapshot

Historical benchmark notes are retained in CHANGELOG.md and the archive docs. Treat them as release evidence, not current guarantees. See docs/development.md for the current benchmark workflow.

Current status

Hybrid is the default routing mode. per-command and stateful remain available as explicit modes. Details are in docs/operator/runtime-and-routing.md.

Quick start

nix develop -c cargo build --release
cp config.minimal.toml config.toml
./target/release/nntp-proxy --config config.toml

Then edit config.toml so [[servers]] points at a real backend and connect your NNTP client to localhost:8119 unless you changed [proxy].port.

Read next

Example configs

License

MIT

About

The Fastest NNTP Proxy, written in Rust

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages