GIO (software)
   HOME

TheInfoList



OR:

GIO (Gnome Input/Output) is a
library A library is a collection of materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
, designed to present programmers with a modern and usable interface to a
virtual file system A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS ...
. It allows applications to access local and remote files with a single consistent
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
, which was designed "to overcome the shortcomings of GnomeVFS" and be "so good that developers prefer it over raw
POSIX The Portable Operating System Interface (POSIX) is a family of standards specified by the IEEE Computer Society for maintaining compatibility between operating systems. POSIX defines both the system- and user-level application programming inter ...
calls." GIO serves as low-level system library for the
GNOME Shell GNOME Shell is the graphical shell of the GNOME desktop environment starting with version 3, which was released on April 6, 2011. It provides basic functions like launching applications, switching between windows and is also a widget engine. ...
/ GNOME/
GTK GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and propriet ...
software stack and is being developed by
The GNOME Project GNOME Project is a community behind the GNOME desktop environment and the software platform upon which it is based. It consists of all the software developers, artists, writers, translators, other contributors, and active users of GNOME. It is n ...
. It is maintained as a separate library, , but it is bundled with
GLib GLib is a bundle of three (formerly five) low-level system libraries written in C and developed mainly by GNOME. GLib's code was separated from GTK, so it can be used by software other than GNOME and has been developed in parallel ever sin ...
. GIO is free and open-source software subject to the requirements of the
GNU Lesser General Public License The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
.


Features

* 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) * file monitoring with
inotify inotify ( inode notify) is a Linux kernel subsystem created by John McCutchan, which monitors changes to the filesystem, and reports those changes to applications. It can be used to automatically update directory views, reload configuration files ...
* file monitoring with FAM * There is support for network programming, including name resolution, lowlevel socket APIs and highlevel client and server helper classes. * There is support for connecting to
D-Bus In computing, D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
, 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/O In computer science, asynchronous I/O (also non-sequential I/O) is a form of input/output processing that permits other processing to continue before the transmission has finished. A name used for asynchronous I/O in the Windows API is overlappe ...
and filename completion. In addition to the interfaces, GIO provides implementations for the local case. Implementations for various network file systems are provided by the
GVfs GVfs (abbreviation for GNOME virtual file system) is GNOME's userspace virtual filesystem designed to work with the I/O abstraction of GIO, a library available in GLib since version 2.15.1. It installs several modules that are automatically us ...
package as loadable modules.


See also

* KIO – an analogous KDE library *
gVFS GVfs (abbreviation for GNOME virtual file system) is GNOME's userspace virtual filesystem designed to work with the I/O abstraction of GIO, a library available in GLib since version 2.15.1. It installs several modules that are automatically us ...
– a user-space
virtual filesystem A virtual file system (VFS) or virtual filesystem switch is an abstract layer on top of a more concrete file system. The purpose of a VFS is to allow client applications to access different types of concrete file systems in a uniform way. A VFS ...
relying on ''GIO'' * GnomeVFS – the older Gnome library for the same purposes


References


External links


GIO Reference Manual


{{GTK Applications using D-Bus C (programming language) libraries Free computer libraries Free software programmed in C GNOME libraries GTK