Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Papercut NNTP server
Tree: 88f2305198

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


Papercut NNTP Server

Papercut is a news server written in 100% pure Python. It is intended to be 
extensible to the point where people can develop their own plug-ins and by
that integrate the NNTP protocol to their applications.

The server is compliant with most of the RFC0977 standards (when they make sense
and are needed) and implements a lot of RFC1036 and RFC2980 extensions to the
NNTP protocol. It was tested against Netscape News, Mozilla News and tin (under
Solaris) and it works properly.

The original need for this server was to integrate my PHP related web site
forums with an NNTP gateway interface, so people could list and read the 
messages posted to the forums on their favorite News reader. The software on 
this case was Phorum ( and the site is 
( At first it wasn't intended to support message posting,
but it made sense to allow it after seeing how effective the tool was.

The concept of storage modules was created exactly for this. I would create a Python
class to handle the inner-workins of Phorum and MySQL and if I ever wanted to
integrate the server with another type of software, I would just need to write 
a new storage module class.

Anyway, back to the technical praise. Papercut is multi-threaded on Windows
platforms and forking-based on UNIX platforms and should be reasonably fast
(that means basically: 'it's pretty fast, but don't try serving 1000 connection
at a time). The best thing about the application is that it is very simple to
extend it.

Papercut is licensed under the BSD license, which means you can sell it or do
whatever you like with it. However, I ask that if you think Papercut is a good
tool and you made a few enhancements to it or even fixed some bugs, please send
me a patch or something. I will appreciate it :)

-- Joao Prado Maia (
Something went wrong with that request. Please try again.