Home Login

Twisted (software)

Categories: PROGRAMMING LANGUAGE

        Twisted is an event-driven network programming framework written in Python and licensed under the MIT License.Twisted projects variously support TCP, UDP, SSL/TLS, IP multicast, Unix domain sockets, many protocols (including HTTP, XMPP, NNTP, IMAP, SSH, IRC, FTP, and others), and much more. Twisted is based on the event-driven programming paradigm, which means that users of Twisted write short callbacks which are called by the framework.

Core ideas

Separation of protocols and transports

     Twisted is designed for complete separation between logical protocols (usually relying on stream-based connection semantics, such as HTTP or POP3) and physical transport layers supporting such stream-based semantics. Note that it is still possible, in protocol code, to deeply query the transport layer on transport issues (such as checking a client-side SSL certificate). Naturally, such protocol code will fail (raise an exception) if the transport layer does not support such semantics.

Deferreds

     Central to the Twisted application model is the concept of a deferred (elsewhere called a future). A deferred is an instance of a class designed to receive and process a result which has not been computed yet, for example because it is based on data from a remote peer. Deferreds can be passed around, just like regular objects, but cannot be asked for their value. Each deferred supports a callback chain.

For example, if a deferred returns a string from a remote peer containing an IP address in quad format, a callback can be attached to translate it into a 32-bit number. Any user of the deferred can now treat it as a deferred returning a 32-bit number. 

Thread support

     Twisted supports an abstraction over raw threads — using a thread as a deferred source. Thus, a deferred is returned immediately, which will receive a value when the thread finishes. Callbacks can be attached which will run in the main thread, thus alleviating the need for complex locking solutions. A prime example of such usage, which comes from Twisted's support libraries, is using this model to call into databases. The database call itself happens on a foreign thread, but the analysis of the result happens in the main thread.

Foreign loop support

    Twisted can integrate with foreign event loops, such as those of GTK+, Qt and Cocoa (through PyObjC). This allows using Twisted as the network layer in graphical user interface (GUI) programs, using all of its libraries without adding a thread-per-socket overhead, as using Python's native library would. A full-fledged web server can be integrated in-process with a GUI program using this model, for example.

Top articles
Twisted (software) Published at:- Applications using Twisted Published at:- Introduction to Quantum Programming Published at:- Quantum Computers Published at:- Quantum Programming Published at:- QUBIT Published at:- QUANTEM GATE Published at:- MIT CSAIL has developed a programming language for Quantum Computing, Twist Published at:- MIT’s New Programming Language for Quantum Computing Published at:- Most popular programming languages Published at:- Component level design in software engineering Published at:- A Ultimate Guide for Choosing the Perfect Programming Language for Application Development Published at:- Cracking the Code and Essential Concepts of C Programming Language for Interview Success Published at:-
Main Category
|| Java || Technology || US Education News || Others || Spring || PROGRAMMING LANGUAGE || NEW SCHEMES || Education || UK EDUCATION NEWS || US EDUCATION GRADE 9 || WORLD EDUATION NEWS || UNITED STATE COMPUTER EDUCATION || PEBC Exam Canada || Software Engineering || science education || GRE QUESTION PAPER || History ||
closeConn($conn); ?>