Twisted (software)

Twisted
Original author(s)Glyph Lefkowitz
Developer(s)Community
Initial releaseOctober 22, 2002; 22 years ago (2002-10-22)[1]
Stable release
24.11.0[2] Edit this on Wikidata / 2 December 2024; 30 days ago (2 December 2024)
Repository
Written inPython
TypeEvent-driven networking
LicenseMIT License
Websitewww.twistedmatrix.com Edit this on Wikidata

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 transport layers supporting such stream-based semantics (such as files, sockets or SSL libraries). Connection between a logical protocol and a transport layer happens at the last possible moment — just before information is passed into the logical protocol instance. The logical protocol is informed of the transport layer instance, and can use it to send messages back and to check for the peer's identity. 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. When the deferred gets the value, it is passed to the functions on the callback chain, with the result of each callback becoming the input for the next. Deferreds make it possible to operate on the result of a function call before its value has become available.

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. This, and the related ability to define "errbacks" (callbacks which are called as error handlers), allows code to specify in advance what to do when an asynchronous event occurs, without stopping to wait for the event. In non-event-driven systems, for example using threads, the operating system incurs premature and additional overhead organizing threads each time a blocking call is made.

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.

Applications using Twisted

  • The BuildBot continuous-integration system relies on Twisted for client/server communication.[3]
  • ITA Software has developed an airline-reservation system for Air Canada that uses Twisted extensively.[4]
  • SageMath, an open-source alternative to Mathematica, Maple, Magma, MATLAB, has a web-based interface, SageMath notebook,[5] that runs on a Twisted server.[6]
  • Twisted was used in the Omegle one-on-one chat service[7] until it was replaced with gevent for performance reasons.[8]
  • The Apple Calendar Server uses Twisted,[9] as do some internal projects of NASA.
  • Conch, an implementation of the Secure Shell (SSH) protocol
  • The original version of social networking and microblogging site Jaiku used Twisted.[citation needed]
  • Fluidinfo, an online cloud data-store, uses Twisted extensively for internal RPC (partly in combination with Thrift and AMQP), for its internal services, and for external APIs.
  • The file-hosting service Ubuntu One used Twisted.
  • Tor2web, an HTTP proxy for Tor Hidden Services (HS), uses Twisted.
  • GlobaLeaks, an open-source whistleblowing framework, uses Twisted.
  • Cloudkick, a cloud-server management web-application, used Twisted. It now has been rewritten using Node.js.
  • Twilio, a cloud telephony provider, uses Twisted.
  • Twitch, a video game broadcasting and chat community, uses Twisted.[10]
  • Velocity Weather, a meteorological data processing and integration API is built on Twisted.[11]
  • qwebirc, a web-based IRC client, uses Twisted.
  • Zenoss Core, a network management platform, uses Twisted for many internal and collection daemons.
  • Scrapy, a web crawler based on Twisted.
  • Listen to Wikipedia, a Wikipedia audio-visualizer, uses Twisted to broadcast real-time edit events to browsers.[12]
  • Tahoe-LAFS, a distributed data store and distributed file system.
  • Deluge, a highly modular BitTorrent client, uses Twisted.[13]
  • Magic Wormhole, a secure file transfer tool using PAKE.[14]

Nevow

Original author(s)Donovan Preston[15][16][17]
Developer(s)Divmod
Initial releaseMay 6, 2004; 20 years ago (2004-05-06)
Stable release
0.14.4 / June 14, 2018; 6 years ago (2018-06-14)[18]
Repository
Written inPython
Operating systemCross-platform
TypeWeb application framework
LicenseMIT License
Websitewww.twistedmatrix.com Edit this on Wikidata

Nevow (pronounced like the French nouveau) is a Python web application framework originally developed by the company Divmod. Template substitution is achieved via a small Tag Attribute Language, which is usually embedded in on-disk XML templates, though there is also a pure-Python domain-specific language called Stan, for expressing this markup programmatically. Nevow integrates well with Twisted.

Nevow was deployed on several high-profile web sites, most notably the official Python site.[19]

As of mid-2010, Divmod went out of business,[20] causing development work on Nevow to all but cease, and in 2011 its homepage was no longer accessible.[21] There is a project on Launchpad, hosting the source code of Divmod[22] including the source code of the Nevow project.[23]

Athena

Athena is a Nevow component which facilitates bi-directional, asynchronous communication between the Python and JavaScript portions of a web application in the form of remote procedure calls. This technique is typically called Ajax or Comet, though Nevow's implementation predates both of these labels.[24] Athena also includes an inheritance-based JavaScript object system, which forms the basis of a client-side widget abstraction, module system and in-browser unit testing kit.

See also

References

  1. ^ Shtull-Trauring, Itamar (2002-10-22). "Twisted 1.0". twisted-python (Mailing list). Retrieved 2008-08-14.
  2. ^ "Release 24.11.0". 2 December 2024. Retrieved 28 December 2024.
  3. ^ "BuildBot Manual". github.com. Archived from the original on 2012-07-29. Retrieved 2017-10-28.
  4. ^ "Python Slithers into Systems". eweek.com.
  5. ^ SageMath#Features
  6. ^ Sage a Basic Overview[permanent dead link]
  7. ^ "mistah deejay". omegler.blogspot.com.
  8. ^ "Google Groups". groups.google.com.
  9. ^ "Calendar and Contacts Server". www.calendarserver.org.
  10. ^ "Twitch - Jobs". Twitch.
  11. ^ "Velocity Weather -". www.velocityweather.com.
  12. ^ A WebSocket-oriented monitor for Wikipedia (also, wikimon, wikital monsters), hatnote, 2017-09-03, retrieved 2017-09-21
  13. ^ "Deluge: build from source". dev.deluge-torrent.org. Retrieved 2020-01-08.
  14. ^ "Magic Wormhole". github.com.
  15. ^ this 2004 paper by Donovan Preston, the original author of Nevow and Formless Archive index at the Wayback Machine
  16. ^ Nevow: A Web Application Construction Kit, Donovan Preston
  17. ^ Subject: Re: ANN: Twisted 1.1.0, the framework of *your* internet, From: Donovan Preston, Date: 2003-10-27, Newsgroups: gmane.comp.python.twisted, nevow was originally a research project -- a weekend's worth of hacking whose benefits turned out to be so great that we decided to focus on bringing it up to a usable state for Quotient as soon as possible. And that's where it is now.
  18. ^ "Releases · twisted/nevow". GitHub. Retrieved 2020-11-04.
  19. ^ PythonWebsitePyramidDocs, Pyramid is the internal website templating system used to build the python.org pages. (It is not connected to the Pyramid web framework, formerly named BFG, that's used with Pylons.) Pyramid uses Nevow as its templating system and YAML as the format for its file based data - PythonInfo Wiki, python.org
  20. ^ Goodbye, Divmod. Hello, World!, July 10, 2009, Deciphering Glyph
  21. ^ Divmod Nevow commits Archived 2012-10-15 at the Wayback Machine on Ohloh
  22. ^ Divmod Archived August 13, 2006, at the Wayback Machine
  23. ^ Divmod on Launchpad
  24. ^ History Archived 2016-03-03 at the Wayback Machine, Nevow Athena from Scratch, or The Evolution of a Chat Application — Divmod Nevow vtrunk documentation
  25. ^ "EventMachine". Retrieved 20 August 2011.
  26. ^ "Integrating with other Frameworks — Kivy 1.11.0.dev0 documentation". kivy.org.

Read other articles:

Audi ForumUbicaciónPaís  AlemaniaCoordenadas 49°11′39″N 9°13′20″E / 49.1941, 9.22233[editar datos en Wikidata] Audi Forum Neckarsulm (en noviembre de 2006). El Foro de Audi en Neckarsulm es una edificio representativo de Audi AG, cuenta con un centro de servicios, una exposición histórica de Audi, Horch y NSU, un Audi Shop, un restaurante, un centro de conferencias y es una opción para que los compradores recojan los modelos A6 y A8. Audi AG tambi...

 

Unincorporated community in the state of Oregon, United States This article is about the community in Oregon. For the alkali lake after which Summer Lake is named, see Summer Lake (Oregon). Place in Oregon, United StatesSummer Lake, OregonSummer Lake StoreSummer LakeShow map of OregonSummer LakeShow map of the United StatesCoordinates: 42°58′23″N 120°46′37″W / 42.973°N 120.777°W / 42.973; -120.777CountryUnited StatesStateOregonCountyLakeElevation4,229 ...

 

Менхенгладбах Mönchengladbach Вид Менхенгладбах Герб Координати: 51°12′ пн. ш. 6°26′ сх. д. / 51.200° пн. ш. 6.433° сх. д. / 51.200; 6.433 Країна Німеччина Земля Північний Рейн — Вестфалія Округ Дюссельдорф Уряд  - Мер Норберт Буде Площа  - Повна 170,43 км

  Lentegíالإنتشاط (بالإسبانية: Lentegí)‏[1]    لينتيخي لينتيخي موقع الإنتشاط في مقاطعة غرناطة (إسبانيا) تقسيم إداري البلد  إسبانيا[2] المنطقة أندلوسيا المسؤولون المقاطعة غرناطة خصائص جغرافية إحداثيات 36°50′04″N 3°40′28″W / 36.834444444444°N 3.6744444444444°W / 36.834444444444...

 

Mbarara Land of Milk.Motto: Ebirungi Biruga Omutuutu (Good things come from sweat)Country UgandaRegionWestern RegionSub-regionAnkole sub-regionDistrictMbarara DistrictFounded1901Township1957Municipality1974Pemerintahan • MayorKakyebezi Robert [1]Populasi (2014 Census) • Total195.013[2]Zona waktu+3 (East African Standard Time) Mbarara adalah kota yang terletak di Uganda barat daya, terletak sekitar 266 km dari Kampala. Kota ini merupakan k...

 

Chronologies Données clés 1860 1861 1862  1863  1864 1865 1866Décennies :1830 1840 1850  1860  1870 1880 1890Siècles :XVIIe XVIIIe  XIXe  XXe XXIeMillénaires :-Ier Ier  IIe  IIIe Chronologies géographiques Afrique Afrique du Sud, Algérie, Angola, Bénin, Botswana, Burkina Faso, Burundi, Cameroun, Cap-Vert, Centrafrique, Comores, République du Congo, République démocratique du Congo, Côte d'Ivoire, Djibouti, Égypte, Érythrée,...

Красний (Красношора, Красна)48°13′08″ пн. ш. 23°55′38″ сх. д. / 48.219050000027777969° пн. ш. 23.92737000002777847° сх. д. / 48.219050000027777969; 23.92737000002777847Витік на північний захід від с. Красна• координати 48°16′50″ пн. ш. 23°51′02″ сх. д. / 48.28077000002777197° пн....

 

Aspect of history Plaque in Chicago marking the creation of the four time zones of the continental US in 1883 Colorized 1913 time zone map of the United States, showing boundaries very different from today Map of U.S. time zones between April 2, 2006, and March 11, 2007. The current situation is different only in that six Indiana counties have since been moved from the Central time zone to the Eastern time zone. The history of standard time in the United States began November 18, 1883, when U...

 

札幌市立山の手養護学校 北緯43度04分12秒 東経141度17分20秒 / 北緯43.06992度 東経141.28883度 / 43.06992; 141.28883座標: 北緯43度04分12秒 東経141度17分20秒 / 北緯43.06992度 東経141.28883度 / 43.06992; 141.28883過去の名称 札幌市立山の手小・中学校 札幌市立山の手養護学校国公私立の別 公立学校設置者 札幌市共学・別学 男女共学課程 全日制課程単位制・

The Estée Lauder Companies Inc.TypePublicTraded asNYSE: EL (Class A)S&P 500 componentIndustryCosmeticsFounded1946; 77 years ago (1946)New York, New York, U.S.FoundersEstée LauderJoseph LauderHeadquartersGeneral Motors BuildingNew York, New York, U.S. 10153Key peopleWilliam P. Lauder(Executive Chairman)Fabrizio Freda(President and CEO)ProductsSkin caremakeupperfumehair careRevenue US$17.737 billion (Fiscal Year Ended June 30, 2022)[1]Operating income US$3.1...

 

State highway in Missouri MO 13 redirects here. The term may also refer to Missouri's 13th congressional district. Route 13MO 13 highlighted in redRoute informationMaintained by MoDOTLength290.601 mi (467.677 km)Existed1922–presentMajor junctionsSouth end AR 21 in Blue EyeMajor intersections US 60 / US 160 in Springfield Route 413 in Springfield I-44 in Springfield US 54 in Collins Route 7 / Route 52 in Clinton US 50 in W...

 

Kecombrang Etlingera elatior Status konservasiKekurangan dataIUCN117234456 TaksonomiDivisiTracheophytaSubdivisiSpermatophytesKladAngiospermaeKladmonocotsKladcommelinidsOrdoZingiberalesFamiliZingiberaceaeGenusEtlingeraSpesiesEtlingera elatior R.M.Sm., 1986 Tata namaBasionimAlpinia elatior (en) lbs Kecombrang, kantan, atau honje adalah sejenis tumbuhan rempah dan merupakan tumbuhan tahunan berbentuk terna yang bunga, buah, serta bijinya dimanfaatkan sebagai bahan sayuran. Nama lainnya adalah honj

Bus station in Bangalore, India This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Kempegowda Bus Station – news · newspapers · books · scholar · JSTOR (August 2012) (Learn how and when to remove this template message) Kempegowda Bus StationMajestic Bus StationKempēgauḍa Bas NildāṇaMejesṭik Bas Nildā...

 

Bánh bà xãTên khácBánh bà xã, bánh lão bàBữaMón vặt, tráng miệngXuất xứQuảng Đông, Trung QuốcVùng hoặc bangVùng nói tiếng Quảng ĐôngThành phần chínhBí đao, bột sệt hạnh nhân, mè, ngũ vị hương Nấu ăn: Bánh bà xã  Media: Bánh bà xã Bánh bà xãPhồn thể老婆餅Giản thể老婆饼Nghĩa đenbánh bà lãoPhiên âmTiếng Hán tiêu chuẩnBính âm Hán ngữlǎopó bǐngTiếng Quảng ChâuIPA[lo̬u ...

 

Family of a monarchThis article is about the monarchy-related concept. For other uses, see Royal family (disambiguation). Not to be confused with Royal Household. This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Royal family – news · newspapers · books · scholar · JSTOR (July 2008) (Learn how and when to remo...

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article ne cite pas suffisamment ses sources (novembre 2018). Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » En pratique : Quelles sources sont attendues ? C...

 

British motorcycle racer John McPheeMcPhee in 2019NationalityScottishBorn (1994-07-14) 14 July 1994 (age 29)Oban, Argyll and Bute, ScotlandCurrent teamVince64 by Pucetti RacingWebsiteJohn McPhee Motorcycle racing career statistics Moto2 World ChampionshipActive years2021 ManufacturersKalex Championships0 2021 championship position37th (0 pts) Starts Wins Podiums Poles F. laps Points 1 0 0 0 0 0 Moto3 World ChampionshipActive years2012–2022 ManufacturersKRP Honda, FTR Honda, Honda,...

 

Railway station in Akashi, Hyōgo Prefecture, Japan Akashi Station明石駅Akashi Station, April 2020General informationLocation1-1-23 Ōakashi-chō, Akashi-shi, Hyōgo-kenJapanCoordinates34°38′57″N 134°59′31″E / 34.649054°N 134.991884°E / 34.649054; 134.991884Owned by West Japan Railway CompanyOperated by West Japan Railway CompanyLine(s) San'yō Main LineDistance19.4 km (12.1 mi) from KobePlatforms2 island platformsTracks4Connections Bus stop Co...

Species of plant This article is about the plant. For the Irish hurler, see Ramie Dowling. For the Irish artist, see Ramie Leahy. For the moth, see Ramie moth. For the given name, see Raymond. Ramie Scientific classification Kingdom: Plantae Clade: Tracheophytes Clade: Angiosperms Clade: Eudicots Clade: Rosids Order: Rosales Family: Urticaceae Genus: Boehmeria Species: B. nivea Binomial name Boehmeria nivea(L.) Gaudich. Ramie (pronounced: /ˈreɪmi/, RAY-mee; from Malay rami), Boehmeria ...

 

For other uses, see Charlotte (disambiguation). The Charlotte The Charlotte was a pub and concert venue in Leicester, England, on the edge of the City Centre, on Oxford Street, opposite De Montfort University. The Charlotte was originally named The Princess Charlotte, later to become simply 'The Charlotte'. The Charlotte was a nationally recognised 'circuit venue' on the live music scene, hosting many famous bands such as Blur, Dale Richardson's Lazy Dollies, Carter USM, Radiohead, Elastica, ...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!