:LastChangedDate: $LastChangedDate$ :LastChangedRevision: $LastChangedRevision$ :LastChangedBy: $LastChangedBy$ Developer Guides ================ .. toctree:: :hidden: vision servers clients trial tutorial/index tutorial/intro tutorial/protocol tutorial/style tutorial/components tutorial/backends tutorial/web tutorial/pb tutorial/factory tutorial/client tutorial/library tutorial/configuration quotes design internet-overview reactor-basics ssl udp process defer-intro defer gendefer time threading producers choosing-reactor endpoints components cred plugin basics application tap systemd logger logging constants rdbms options dirdbm testing sendmsg amp pb pb-intro pb-usage pb-clients pb-copyable pb-cred pb-limits python3 positioning glossary debug-with-emacs - .. _core-howto-index-introduction: Introduction - :doc:`Executive summary <vision>` Connecting your software - and having fun too! - .. _core-howto-index-tutorials: Getting Started - :doc:`Writing a TCP server <servers>` Basic network servers with Twisted. - :doc:`Writing a TCP client <clients>` And basic clients. - :doc:`Test-driven development with Twisted <trial>` Code without tests is broken by definition; Twisted makes it easy to test your network code. - :doc:`Tutorial: Twisted From Scratch <tutorial/index>` #. :doc:`The Evolution of Finger: building a simple finger service <tutorial/intro>` #. :doc:`The Evolution of Finger: adding features to the finger service <tutorial/protocol>` #. :doc:`The Evolution of Finger: cleaning up the finger code <tutorial/style>` #. :doc:`The Evolution of Finger: moving to a component based architecture <tutorial/components>` #. :doc:`The Evolution of Finger: pluggable backends <tutorial/backends>` #. :doc:`The Evolution of Finger: a clean web frontend <tutorial/web>` #. :doc:`The Evolution of Finger: Twisted client support using Perspective Broker <tutorial/pb>` #. :doc:`The Evolution of Finger: using a single factory for multiple protocols <tutorial/factory>` #. :doc:`The Evolution of Finger: a Twisted finger client <tutorial/client>` #. :doc:`The Evolution of Finger: making a finger library <tutorial/library>` #. :doc:`The Evolution of Finger: configuration and packaging of the finger service <tutorial/configuration>` - :doc:`Setting up the TwistedQuotes application <quotes>` - :doc:`Designing a Twisted application <design>` - .. _core-howto-index-events: Networking and Other Event Sources - :doc:`Twisted Internet <internet-overview>` A brief overview of the ``twisted.internet`` package. - :doc:`Reactor basics <reactor-basics>` The event loop at the core of your program. - :doc:`Using SSL in Twisted <ssl>` Add some security to your network transport. - :doc:`UDP Networking <udp>` How to use Twisted's UDP implementation, including multicast and broadcast functionality. - :doc:`Using processes <process>` Launching sub-processes, the correct way. - :doc:`Introduction to Deferreds <defer-intro>` Like callback functions, only a lot better. - :doc:`Deferred reference <defer>` In-depth information on Deferreds. - :doc:`Generating deferreds <gendefer>` More about Deferreds. - :doc:`Scheduling <time>` Timeouts, repeated events, and more: when you want things to happen later. - :doc:`Using threads <threading>` Running code in threads, and interacting with Twisted in a thread-safe manner. - :doc:`Producers and Consumers: Efficient High-Volume Streaming <producers>` How to pause when buffers fill up. - :doc:`Choosing a reactor and GUI toolkit integration <choosing-reactor>` GTK+, Windows, epoll() and more: use your GUI of choice, or a faster event loop. - .. _core-howto-index-highlevel: High-Level Infrastructure - :doc:`Getting Connected with Endpoints <endpoints>` Create configurable applications that support multiple transports (e.g. TCP and SSL). - :doc:`Interfaces and Adapters (Component Architecture) <components>` When inheritance isn't enough. - :doc:`Cred: Pluggable Authentication <cred>` Implementing authentication and authorization that is configurable, pluggable and re-usable. - :doc:`Twisted's plugin architecture <plugin>` A generic plugin system for extendable programs. - .. _core-howto-index-deploying: Deploying Twisted Applications - :doc:`Helper programs and scripts (twistd, ..) <basics>` ``twistd`` lets you daemonize and run your application. - :doc:`Using the Twisted Application Framework <application>` Writing code that ``twistd`` can run. - :doc:`Writing Twisted Application Plugins for twistd <tap>` More powerful ``twistd`` deployment method. - :doc:`Deploying Twisted with systemd <systemd>` Use ``systemd`` to launch and monitor Twisted applications. - .. _core-howto-index-utilities: Utilities - :doc:`Emitting and Observing Logs <logger>` Keep a record of what your application is up to, and inspect that record to discover interesting information. (You may also be interested in the :doc:`legacy logging system <logging>` if you are maintaining code written to work with older versions of Twisted.) - :doc:`Symbolic constants <constants>` enum-like constants. (Deprecated, spun out into `Constantly <http://constantly.readthedocs.org/en/latest/>`_) - :doc:`Twisted RDBMS support with adbapi <rdbms>` Using SQL with your relational database via DB-API adapters. - :doc:`Parsing command-line arguments <options>` The command-line argument parsing used by ``twistd`` . - :doc:`Using Dirdbm: Directory-based Storage <dirdbm>` A simplistic way to store data on your filesystem. - :doc:`Tips for writing tests for Twisted code using Trial <testing>` More information on writing tests. - :doc:`Extremely Low-Level Socket Operations <sendmsg>` Using wrappers for sendmsg(2) and recvmsg(2). - .. _core-howto-index-amp: Asynchronous Messaging Protocol (AMP) - :doc:`Asynchronous Messaging Protocol Overview <amp>` A two-way asynchronous message passing protocol, for when HTTP isn't good enough. - .. _core-howto-index-pb: Perspective Broker - :doc:`Twisted Spread <pb>` A remote method invocation (RMI) protocol: call methods on remote objects. - :doc:`Introduction to Perspective Broker <pb-intro>` - :doc:`Using Perspective Broker <pb-usage>` - :doc:`Managing Clients of Perspectives <pb-clients>` - :doc:`Passing Complex Types <pb-copyable>` - :doc:`Authentication with Perspective Broker <pb-cred>` - :doc:`PB Limits <pb-limits>` - .. _core-howto-index-positioning: Positioning - :doc:`Twisted Positioning <positioning>` - .. _core-howto-index-appendix: Appendix - :doc:`Porting to Python 3 <python3>` - :doc:`Glossary <glossary>` - :doc:`Tips for debugging with emacs <debug-with-emacs>`