forked from twisted/twisted
-
Notifications
You must be signed in to change notification settings - Fork 0
Event-driven networking engine written in Python.
License
jacobrichard/twisted
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Twisted 1.1.0 Quote of the Release: --> orangecat has joined #twisted <orangecat> I was just on my way to the bar to pick up some internet and wondered if everyone had enough enterprise. No facilitated client-based XML quality vector refills? Budweiser? <-- orangecat has left #twisted" For information on what's new in Twisted 1.1.0, see the ChangeLog file that comes with the distribution, or http://twistedmatrix.com/ChangeLog.txt. What is this? Twisted is an event-based framework for internet applications. It includes a web server, a telnet server, a chat server, a news server, a generic client and server for remote object access, and APIs for creating new protocols and services. Twisted supports integration of the Tk, GTK+, GTK+ 2, Qt, Mac OS X, or wxPython event loop with its main event loop. The Win32 event loop is also supported. Twisted works with all Python 2.2 and 2.3 versions. Twisted currently supports the following protocols, all implemented in pure Python, most of them as both servers and clients: - SSH - FTP - HTTP - XML-RPC (using xmlrpclib) - SOAP (using SOAPpy) - NNTP - SOCKSv4 (server only) - SIP - Jabber - SMTP - IRC - telnet - POP3 - AOL's instant messaging TOC - OSCAR, used by AOL-IM as well as ICQ (client only) - DNS - MouseMan - finger - Echo, discard, chargen and friends - Twisted Perspective Broker For more information, visit http://www.twistedmatrix.com, or join the list at http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python What can I do with it? Instructions for installing this software are in INSTALL. Although there is a lot of infrastructure support in Twisted, the immediately useful applications for the end-user are Twisted Web and Instance Messenger. Twisted Web is a webserver, written entirely in python, which is designed to be "zero maintenance". We run the twistedmatrix.com website from it, and I can testify that it has met its goals at least for me! The server can comfortably handle 50 dynamic-content requests per second on fairly old hardware (I have a Pentium II/333); however, since Twisted is entirely in Python, it's quite easy to script the webserver to do whatever you like! Instance Messenger is a multi-protocol chat client; it's easy to use: just run 'im', and an "account manager" window will pop up. You can create and modify accounts with it, and connect to/disconnect from them. Currently it can support Twisted's own chat service, Twisted Words, Internet Relay Chat (IRC), and AOL Instant Messenger (with the TOC protocol). Unit Tests See our unit tests run proving that the software is BugFree(TM):: % admin/runtests Some of these tests may fail if you * don't have the dependancies required for a particular subsystem installed, * have a firewall blocking some ports (or things like Multicast, which Linux NAT has shown itself to do), or * run them as root. If you're feeling more brave, you can try the new "acceptance tests". These require some setup and are mainly for the developers to decide if it's OK to release, but: % admin/accepttests Basic Servers There are various servers you can build and run in the main distribution, although they won't be covered here. Twisted servers do not have configuration files; instead, you instantiate a server and put it into a Pickle file; your servers and all of their component objects are saved in that file, and can be loaded with the Twisted Daemon. See http://twistedmatrix.com/documents/howto/basics, or in your archive doc/howto/basics.xhtml for more information. The normal type of server to create is a webserver. You can run this command:: % mktap web --path static See http://twistedmatrix.com/documents/howto/using-twistedweb, or in your archive doc/howto/using-twistedweb.xhtml for more information about using the web server. A generic chat server:: % mktap words This creates a chat server application, with 2 different interfaces and a web administration port. Web administration can be conducted on port 8080, the IRC server on 6667, and a PB service on port 8787. You'll need to create an account with the web tool before you can log in, even using IRC (a "bot" will ask you for your password upon connection). So far the IRC gateway has only been tested with mIRC, XChat, and ircII; I believe that these are relatively diverse clients, but YMMV. The "Instance Messenger" is an instant messaging client to the various chat services that Twisted can interface with, which are IRC, AIM, and, twisted.words. You can invoke it like this:: % im A AOL Instant Messenger TOC Server is also available:: % mktap toc -p 5190 which creates the TOC server, running on port 5190. To create a user, simply log in with the username and password you want. If the name is not already taken on the server, it is created. This creates a file called 'toc.tap' Documentation and Support Although this is far from enough, some examples on how to use basic Twisted APIs are located in doc/examples; this might ease the learning curve a little bit, since all these files are kept as short as possible. The file doc/howto/index.xhtml contains an index of all the HOWTOs: this should be your starting point when looking for documentation. As of this release, I realize that Twisted's documentation is rather sparse. I encourage you to read the source code and docstrings, but if you're curious as to what Twisted can do, please feel free to join the mailing list:: http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python or to join #twisted on irc.freenode.net for some live help. Part of the problem with documentation on a project like this is that everything seems obvious to me :-). If you have trouble with a particular aspect of the Twisted system, I'd like to hear about what was confusing and why. The process of your learning may be the material I build a tutorial from, so don't hesitate to ask! Copyright All of the code in this distribution is (C) Matthew William Lefkowitz, AKA "Glyph". Twisted is made available under version 2.1 of the GNU Lesser General Public License. The included LICENSE file describes this in detail. Warranty THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE USE OF THIS SOFTWARE IS WITH YOU. IN NO EVENT WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE LIBRARY, BE LIABLE TO YOU FOR ANY DAMAGES, EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. Again, see the included LICENSE file for specific legal details.
About
Event-driven networking engine written in Python.
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- Python 96.9%
- C 2.8%
- Other 0.3%