GIO (software)

GNOME Project library
title: "GIO (software)" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["applications-using-d-bus", "c-(programming-language)-libraries", "free-computer-libraries", "free-software-programmed-in-c", "gnome-libraries", "gtk"] description: "GNOME Project library" topic_path: "general/applications-using-d-bus" source: "https://en.wikipedia.org/wiki/GIO_(software)" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0
::summary GNOME Project library ::
::data[format=table title="Infobox software"]
| Field | Value |
|---|---|
| name | GLib |
| title | GIO |
| developer | The GNOME Project |
| released | |
| programming language | C |
| genre | System library |
| license | GNU Lesser General Public License |
| website | |
| :: |
| name = GLib | title = GIO | author = | developer = The GNOME Project | released = | discontinued = | status = | programming language = C | operating system = | platform = | size = | genre = System library | license = GNU Lesser General Public License | website = ::figure[src="https://upload.wikimedia.org/wikipedia/commons/4/45/Linux_kernel_System_Call_Interface_and_glibc.svg" caption="Glib]], [[GModule]], [[GThread]] and [[GIO]]) serve as further wrappers for their specific tasks."] ::
::figure[src="https://upload.wikimedia.org/wikipedia/commons/a/ab/GTK+_software_architecture.svg" caption="Cairo]] and [[GLib]]."] ::
GIO (Gnome Input/Output) is a library, designed to present programmers with a modern and usable interface to a virtual file system. It allows applications to access local and remote files with a single consistent API, which was designed "to overcome the shortcomings of GnomeVFS" and be "so good that developers prefer it over raw POSIX calls."
GIO serves as low-level system library for the GNOME Shell/GNOME/GTK software stack and is being developed by The GNOME Project. It is maintained as a separate library, , but it is bundled with GLib. GIO is free and open-source software released under the GNU Lesser General Public License.
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
- 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, 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 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 package as loadable modules.
References
References
- "GIO Reference Manual".
- "xdgmime in GIO git".
- "inotify in GIO git".
- (May 2024). "FAM in GIO git }}{{Dead link".
::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::