GIO (software)
Developer(s) | The GNOME Project |
---|---|
Written in | C |
Type | System library |
License | GNU Lesser General Public License |
Website | developer |
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]- KIO– an analogous KDE library
- gVFS– a user-spacevirtual filesystemrelying onGIO
- GnomeVFS– the older Gnome library for the same purposes