Difference between revisions of "Necko"

From CDOT Wiki
Jump to: navigation, search
Line 40: Line 40:
== References ==
== References ==
* [http://www.mozilla.org/projects/netlib/ | Mozilla Networking Library Documentation]
* [http://www.mozilla.org/projects/netlib/ Mozilla Networking Library Documentation]
* [http://www.mozilla.org/projects/netlib/necko_interface_overview.html | Necko Interfaces Primer]
* [http://www.mozilla.org/projects/netlib/necko_interface_overview.html Necko Interfaces Primer]
* [http://www.mozilla.org/projects/netlib/presentations/necko1-2002-02-18/slide1.xml | Darin Fisher's Necko presentation, 2002/02/18]
* [http://www.mozilla.org/projects/netlib/presentations/necko1-2002-02-18/slide1.xml Darin Fisher's Necko presentation, 2002/02/18]
* [http://lxr.mozilla.org/seamonkey/source/netwerk/ | LXR - seamonkey/netwerk]
* [http://lxr.mozilla.org/seamonkey/source/netwerk/ LXR - seamonkey/netwerk]

Revision as of 21:50, 5 October 2006

Short Description

Necko is a platform-independent API for several layers of networking (transport to presentation) that is built on XPCOM. It is currently in use in Mozilla and all of its clients.

Longer Description

  • Built on XPCOM and NSPR - Not a stand-alone library
  • Implemented mainly in C++
  • Continually evolving (quite drastically!)
  • Originally located at mozilla/network. This version is now completely deprecated.
  • Now located at mozilla/netwerk.

Important Interfaces

Necko has several important pieces:

  • nsIOService
  • nsIURI
  • nsIChannel
  • nsIProtocolHandler
  • nsITransport


  • Provides network utility functions.
  • Manages nsIProtocolHandler implementations.
  • Creates nsIURI objects from URI strings.


  • Represents a URI (scheme://host/path).
  • Parent class of nsIURL, which is implemeted by nsStandardURL, which handles standard URL operations.


  • Manages a single protocol based on a scheme (e.g. http).
  • Uses nsIURI instance to create nsIChannel.


  • Uses nsIURI information to create logical connection to resource.


  • Listener for connection start, arrival of data, and stop request.


  • Represents physical connection (e.g. file descriptor, socket).