Jump to content

GIO (software)

From Wikipedia, the free encyclopedia
(Redirected fromGIO (GNOME))
GIO
Developer(s)The GNOME Project
Written inC
TypeSystem library
LicenseGNU Lesser General Public License
Websitedeveloper.gnome.org/gio/stable/
As theGNU C Libraryserves as a wrapper forLinux kernelsystem calls,so do the libraries bundled inGLib(GObject,Glib,GModule,GThreadandGIO) serve as further wrappers for their specific tasks.
Simplified software architecture ofGTK.Pango,GDK,ATK,GIO,CairoandGLib.

GIO(Gnome Input/Output) is alibrary,designed to present programmers with a modern and usable interface to avirtual file system.It allows applications to access local and remote files with a single consistentAPI,which was designed "to overcome the shortcomings ofGnomeVFS"and be" so good that developers prefer it over rawPOSIXcalls. "[1]

GIO serves as low-level system library for theGNOME Shell/GNOME/GTKsoftware stack and is being developed byThe GNOME Project.It is maintained as a separate library,libgio-2.0,but it is bundled withGLib.GIO isfree and open-source softwarereleased under theGNU Lesser General Public License.

Features

[edit]
  • The abstract file system model of GIO consists of a number of interfaces and base classes for I/O and files.
  • There are a number of stream classes, similar to the input and output stream hierarchies that can be found in frameworks like Java.
  • There are interfaces related to applications and the types of files they handle.
  • There is a framework for storing and retrieving application settings.
  • file type detection with xdgmime (xdg = X Desktop Group =freedesktop.org)[2]
  • file monitoring withinotify[3]
  • file monitoring withFAM[4]
  • There is support for network programming, including name resolution, lowlevel socket APIs and highlevel client and server helper classes.
  • There is support for connecting toD-Bus,sending and receiving messages, owning and watching bus names, and making objects available on the bus.

Beyond these, GIO provides facilities for file monitoring,asynchronous I/Oand filename completion. In addition to the interfaces, GIO provides implementations for the local case. Implementations for various network file systems are provided by theGVfspackage as loadable modules.

See also

[edit]

References

[edit]
  1. ^"GIO Reference Manual".
  2. ^"xdgmime in GIO git".[permanent dead link]
  3. ^"inotify in GIO git".[permanent dead link]
  4. ^"FAM in GIO git".[permanent dead link]
[edit]